社区
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,但是却输入乱七八糟的值,请问各位大侠这是什么原因,谢谢
...全文
282
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写文章
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,还要考虑大小端问题
C语言程序设计(高清PDF)
6.4.4
指针
与
字符
数组 108 6.5
指针
的地址分配 111 6.6
指针
数组 112 6.7 指向
指针
的
指针
118 6.8 main函数的参数 121 第7章 结构体与共用体 125 7.1 结构体类型变量的定义和引用 125 7.1.1 结构体类型变量的定义 ...
字符
指针
赋值
、传值
1.先来理解一下
指针
的初始化及
赋值
int main() { char *a; cout<<"please input the plaintext"<...a=...是给a
赋值
...*a=...是给a指向的内存
赋值
...上述代码错误在没有把一个变量的地址
赋值
给
指针
...
C语言中,为什么
字符
串可以
赋值
给
字符
指针
变量
C语言中,为什么
字符
串可以
赋值
给
字符
指针
变量 char *p,a='5'; p=&a; //显然是正确的, p="abcd"; //但为什么也可以这样
赋值
?? 问:一直理解不了为什么可以将字串常量
赋值
给
字符
指针
变量,请...
c语言
指针
赋值
指针
变量
赋值
吗,C语言_
指针
变量的
赋值
与运算,很详细
指针
变量的
赋值
指针
变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经
赋值
的
指针
变量不能使用, 否则将造成系统混乱,甚至死机。
指针
变量的
赋值
只能赋予地址, 决不能赋予任何其它数据,...
C语言 浅谈数组和
字符
指针
的
赋值
问题
在学习C语言的过程中,总是会遇到很多
问题
,不管它简单与否,了解到其本质
问题
就...以上代码,是绝对不被允许的,因为数组除了在声明时的初始化可以成块的把数据
赋值
给数组。其他任何时候都只能是单个的元素对其...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章