社区
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,但是却输入乱七八糟的值,请问各位大侠这是什么原因,谢谢
...全文
329
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语言数组
赋值
。先区分数组声明、初始化和
赋值
的概念,随后介绍
整型
数组
赋值
方法,如循环
赋值
、用户自定义
赋值
等;还阐述
字符
数组
赋值
,包括单独存
字符
、用
指针
及
字符
串函数等,同时提醒注意数组下标和越界
问题
。
c语言不兼容
指针
类型的
赋值
,关于C语言
指针
赋值
的
问题
详解
博客探讨了在C语言中遇到的
指针
赋值
警告,详细解释了将
字符
数组的首地址
赋值
给
整型
数组时出现的
问题
。通过小丁的修改,使用强制类型转换消除了警告。主要涉及
指针
类型匹配、强制类型转换和函数参数传递的正确方式。
C语言中类型转换
问题
?
本文探讨了C语言中关于
指针
类型转换的
问题
,包括为何不能将
字符
指针
声明为
整型
指针
、
字符
型
指针
如何
赋值
给
整型
变量、以及非法内存访问等
问题
。
C语言
指针
数组初始化
博客主要讨论
指针
初始化
问题
。指出
指针
初始化或
赋值
需用0值、常量表达式和类型匹配对象的地址。
字符
串字面值常量类型为const char *,可用于初始化
指针
;而
整型
常量类型为int,不能用于初始化
指针
,如VS2010编译时会报错。
Tessy测试技巧二:
指针
函数测试
本文介绍了在TDE和TIE界面中如何创建不同类型的
指针
变量测试用例,包括数组类型
指针
、普通
整型
字符
型
指针
及
指针
函数变量的数据流向测试方法。针对
指针
数组
赋值
传递的
问题
提供了解决方案。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章