社区
C语言
帖子详情
字符指针赋值给整型指针问题
richardvip
2011-11-16 06:39:29
如下代码:
void main(void)
{
char a[10] = {0,1,2,3,4,5,6,7,8,9};
int *ptr;
ptr = (int*)a;
printf("*ptr = %d\r\n",*ptr);
printf("*(ptr+1) = %d\r\n",*(ptr+1));
}
本以为输出为0和4,但是却输入乱七八糟的值,请问各位大侠这是什么原因,谢谢
...全文
295
10
打赏
收藏
字符指针赋值给整型指针问题
如下代码: void main(void) { char a[10] = {0,1,2,3,4,5,6,7,8,9}; int *ptr; ptr = (int*)a; printf("*ptr = %d\r\n",*ptr); printf("*(ptr+1) = %d\r\n",*(ptr+1)); } 本以为输出为0和4,但是却输入乱七八糟的值,请问各位大侠这是什么原因,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小清新爱大光明
2011-11-17
打赏
举报
回复
小端:%x的话*ptr输出 03020100 *(ptr + 1)输出 07060504
大端:00010203 04050607
Mark0904
2011-11-16
打赏
举报
回复
[Quote=引用 2 楼 duke56 的回复:]
你的数组是char型的,而你的指针是int型的,按int型读取是0,1,2,3(假设下)的,接下来才再读取四个char
一般的编译器都是4个char==1个int的
[/Quote]++
dic_008
2011-11-16
打赏
举报
回复
char 类型提升为int类型 内存的存储结构变了。
dynamic_system
2011-11-16
打赏
举报
回复
[Quote=引用 6 楼 cfjtaishan 的回复:]
恩,你把字符串的首地址强制转换后给整型,整型是占四个字节的, ptr = (int*)a;它会把a开始的四个字节作为一个数据,你每次对ptr加1,ptr都会移动四个字节。
[/Quote]
六楼,可否给我解释下用%p输出*ptr的值是:0403020100而不是43210呢
自信男孩
2011-11-16
打赏
举报
回复
恩,你把字符串的首地址强制转换后给整型,整型是占四个字节的, ptr = (int*)a;它会把a开始的四个字节作为一个数据,你每次对ptr加1,ptr都会移动四个字节。
richardvip
2011-11-16
打赏
举报
回复
谢谢各位知道了,都是因为我打印没有按照16进制输出,所以没看出来,谢谢了
richardvip
2011-11-16
打赏
举报
回复
谢谢各位的回复,我是在vc6.0下运行的,应该是小端格式
jixingzhong
2011-11-16
打赏
举报
回复
因为机器的端绪问题。
这样的输出,是将内存中的内容根据char解析并输出,可以自己转换为0/1码后解析一下看看。
duke56
2011-11-16
打赏
举报
回复
你的数组是char型的,而你的指针是int型的,按int型读取是0,1,2,3(假设下)的,接下来才再读取四个char
一般的编译器都是4个char==1个int的
ryfdizuo
2011-11-16
打赏
举报
回复
输出的值是有意义的。四个char一个int,还要考虑大小端问题
The C Programming Language 第二版 英文版
The C programming Language 第二版英文版 內容列表 Table of Contents Preface.......................................................... Preface to the first edition..................................... Introduction..................................................... Chapter 1 - A Tutorial Introduction.............................. 1.1 Getting Started................................ 1.2 Variables and Arithmetic Expressions........... 1.3 The for statement.............................. 1.4 Symbolic Constants............................. 1.5 Character Input and Output..................... 1.5.1 File Copying.......................... 1.5.2 Character Counting.................... 1.5.3 Line Counting......................... 1.5.4 Word Counting......................... 1.6 Arrays......................................... 1.7 Functions...................................... 1.8 Arguments - Call by Value...................... 1.9 Character Arrays............................... 1.10 External Variables and Scope.................. Chapter 2 - Types, Operators and Expressions..................... 2.1 Variable Names................................. 2.2 Data Types and Sizes........................... 2.3 Constants...................................... 2.4 Declarations................................... 2.5 Arithmetic Operators........................... 2.6 Relational and Logical Operators............... 2.7 Type Conversions............................... 2.8 Increment and Decrement Operators.............. 2.9 Bitwise Operators.............................. 2.10 Assignment Operators and Expressions.......... 2.11 Conditional Expressions....................... 2.12 Precedence and Order of Evaluation............ Chapter 3 - Control Flow......................................... 3.1 Statements and Blocks.......................... 3.2 If-Else........................................ 3.3 Else-If........................................ 3.4 Switch......................................... 3.5 Loops - While and For.......................... 3.6 Loops - Do-While............................... 3.7 Break and Continue............................. 3.8 Goto and labels................................ Chapter 4 - Functions and Program Structure...................... 4.1 Basics of Functions............................ 4.2 Functions Returning Non-integers............... 4.3 External Variables............................. 4.4 Scope Rules.................................... 4.5 Header Files................................... 4.6 Static Variables................................ 4.7 Register Variables.............................. 4.8 Block Structure................................. 4.9 Initialization.................................. 4.10 Recursion...................................... 4.11 The C Preprocessor............................. 4.11.1 File Inclusion........................ 4.11.2 Macro Substitution.................... 4.11.3 Conditional Inclusion................. Chapter 5 - Pointers and Arrays.................................. 5.1 Pointers and Addresses......................... 5.2 Pointers and Function Arguments................ 5.3 Pointers and Arrays............................ 5.4 Address Arithmetic............................. 5.5 Character Pointers and Functions............... 5.6 Pointer Arrays; Pointers to Pointers........... 5.7 Multi-dimensional Arrays....................... 5.8 Initialization of Pointer Arrays............... 5.9 Pointers vs. Multi-dimensional Arrays.......... 5.10 Command-line Arguments........................ 5.11 Pointers to Functions......................... 5.12 Complicated Declarations...................... Chapter 6 - Structures........................................... 6.1 Basics of Structures........................... 6.2 Structures and Functions....................... 6.3 Arrays of Structures........................... 6.4 Pointers to Structures......................... 6.5 Self-referential Structures.................... 6.6 Table Lookup................................... 6.7 Typedef........................................ 6.8 Unions......................................... 6.9 Bit-fields..................................... Chapter 7 - Input and Output..................................... 7.1 Standard Input and Output....................... 7.2 Formatted Output - printf....................... 7.3 Variable-length Argument Lists.................. 7.4 Formatted Input - Scanf......................... 7.5 File Access..................................... 7.6 Error Handling - Stderr and Exit................ 7.7 Line Input and Output........................... 7.8 Miscellaneous Functions......................... 7.8.1 String Operations...................... 7.8.2 Character Class Testing and Conversion. 7.8.3 Ungetc................................. 7.8.4 Command Execution...................... 7.8.5 Storage Management..................... 7.8.6 Mathematical Functions................. 7.8.7 Random Number generation............... Chapter 8 - The UNIX System Interface............................ 8.1 File Descriptors............................... 8.2 Low Level I/O - Read and Write................. 8.3 Open, Creat, Close, Unlink..................... 8.4 Random Access - Lseek.......................... 8.5 Example - An implementation of Fopen and Getc.. 8.6 Example - Listing Directories.................. 8.7 Example - A Storage Allocator.................. Appendix A - Reference Manual.................................... A.1 Introduction................................... A.2 Lexical Conventions............................ A.2.1 Tokens................................ A.2.2 Comments.............................. A.2.3 Identifiers........................... A.2.4 Keywords.............................. A.2.5 Constants............................. A.2.6 String Literals....................... A.3 Syntax Notation................................ A.4 Meaning of Identifiers......................... A.4.1 Storage Class......................... A.4.2 Basic Types........................... A.4.3 Derived types......................... A.4.4 Type Qualifiers....................... A.5 Objects and Lvalues............................ A.6 Conversions.................................... A.6.1 Integral Promotion.................... A.6.2 Integral Conversions.................. A.6.3 Integer and Floating.................. A.6.4 Floating Types........................ A.6.5 Arithmetic Conversions................ A.6.6 Pointers and Integers................. A.6.7 Void.................................. A.6.8 Pointers to Void...................... A.7 Expressions.................................... A.7.1 Pointer Conversion.................... A.7.2 Primary Expressions................... A.7.3 Postfix Expressions................... A.7.4 Unary Operators....................... A.7.5 Casts................................. A.7.6 Multiplicative Operators.............. A.7.7 Additive Operators.................... A.7.8 Shift Operators....................... A.7.9 Relational Operators.................. A.7.10 Equality Operators................... A.7.11 Bitwise AND Operator................. A.7.12 Bitwise Exclusive OR Operator........ A.7.13 Bitwise Inclusive OR Operator........ A.7.14 Logical AND Operator................. A.7.15 Logical OR Operator.................. A.7.16 Conditional Operator................. A.7.17 Assignment Expressions............... A.7.18 Comma Operator.......................... A.7.19 Constant Expressions.................... A.8 Declarations..................................... A.8.1 Storage Class Specifiers................. A.8.2 Type Specifiers.......................... A.8.3 Structure and Union Declarations......... A.8.4 Enumerations............................. A.8.5 Declarators.............................. A.8.6 Meaning of Declarators................... A.8.7 Initialization........................... A.8.8 Type names............................... A.8.9 Typedef.................................. A.8.10 Type Equivalence........................ A.9 Statements....................................... A.9.1 Labeled Statements....................... A.9.2 Expression Statement..................... A.9.3 Compound Statement....................... A.9.4 Selection Statements..................... A.9.5 Iteration Statements..................... A.9.6 Jump statements.......................... A.10 External Declarations........................... A.10.1 Function Definitions.................... A.10.2 External Declarations................... A.11 Scope and Linkage............................... A.11.1 Lexical Scope........................... A.11.2 Linkage................................. A.12 Preprocessing................................... A.12.1 Trigraph Sequences...................... A.12.2 Line Splicing........................... A.12.3 Macro Definition and Expansion.......... A.12.4 File Inclusion.......................... A.12.5 Conditional Compilation................. A.12.6 Line Control............................ A.12.7 Error Generation........................ A.12.8 Pragmas................................. A.12.9 Null directive.......................... A.12.10 Predefined names....................... A.13 Grammar......................................... Appendix B - Standard Library.................................... B.1.1 File Operations................................ B.1.2 Formatted Output......................... B.1.3 Formatted Input.......................... B.1.4 Character Input and Output Functions..... B.1.5 Direct Input and Output Functions........ B.1.6 File Positioning Functions............... B.1.7 Error Functions.......................... B.2 Character Class Tests: ................. B.3 String Functions: ..................... B.4 Mathematical Functions: ................. B.5 Utility Functions: ....................
C语言精彩编程100例
C语言入门教程:主要针对C语言初学者,从零讲解各个细节。
字符
指针
赋值
、传值
1.先来理解一下
指针
的初始化及
赋值
int main() { char *a; cout<<"please input the plaintext"<<endl; cin>>a; cout<<a; } a=...是给a
赋值
*a=...是给a指向的内存
赋值
上述代码错误在没有把一个变量的地址
赋值
给
指针
...
C语言 浅谈数组和
字符
指针
的
赋值
问题
在学习C语言的过程中,总是会遇到很多
问题
,不管它简单与否,了解到其本质
问题
就迎刃而解。一下我阐述的知识点,我在编程学习中遇到
问题
,并查阅资料料所总结的一点东西,可能会有不严谨或错误的地方,希望指出改正。 错误一: char str[10]; str = &amp;amp;quot;hello&amp;amp;quot;; 以上代码,是绝对不被允许的,因为数组除了在声明时的初始化可以成块的把数据
赋值
给数组。其他任何时候都只能是单个的元素对其...
c语言
指针
赋值
指针
变量
赋值
吗,C语言_
指针
变量的
赋值
与运算,很详细
指针
变量的
赋值
指针
变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经
赋值
的
指针
变量不能使用, 否则将造成系统混乱,甚至死机。
指针
变量的
赋值
只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。在C语言中, 变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。 C语言中提供了地址运算符&来表示变量的地址。其一般形式为: & 变量名; 如&a...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章