社区
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,但是却输入乱七八糟的值,请问各位大侠这是什么原因,谢谢
...全文
311
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,还要考虑大小端问题
The C Programming Language 第二版 英文版
- **5.5
字符
指针
与函数**:介绍如何使用
字符
指针
来处理
字符
串。 - **5.6
指针
数组;指向
指针
的
指针
**:探索更复杂的
指针
结构。 - **5.7 多维数组**:说明多维数组的概念及其实现。 - **5.8
指针
数组的初始化**:...
C语言精彩编程100例
此外,了解变量、常量、数据类型(如
整型
、浮点型、
字符
型)以及它们的声明和初始化也是必要的。 接下来,控制结构是C语言中的核心元素,包括条件语句(if-else)、循环(for、while、do-while)和跳转语句(break...
字符
指针
赋值
、传值
1.先来理解一下
指针
的初始化及
赋值
int main() { char *a; cout<<"please input the plaintext"<...a=...是给a
赋值
...*a=...是给a指向的内存
赋值
...上述代码错误在没有把一个变量的地址
赋值
给
指针
...
C语言 浅谈数组和
字符
指针
的
赋值
问题
在学习C语言的过程中,总是会遇到很多
问题
,不管它简单与否,了解到其本质
问题
就...以上代码,是绝对不被允许的,因为数组除了在声明时的初始化可以成块的把数据
赋值
给数组。其他任何时候都只能是单个的元素对其...
c语言
指针
赋值
指针
变量
赋值
吗,C语言_
指针
变量的
赋值
与运算,很详细
指针
变量的
赋值
指针
变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经
赋值
的
指针
变量不能使用, 否则将造成系统混乱,甚至死机。
指针
变量的
赋值
只能赋予地址, 决不能赋予任何其它数据,...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章