社区
C语言
帖子详情
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
My_Love
2012-07-25 09:06:56
a == 0x56? or 未知?
...全文
311
7
打赏
收藏
对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?
a == 0x56? or 未知?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
My_Love
2012-07-25
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
就是溢出,但结果必然0x56这跟大小端没关系
[/Quote]
有法定依据没?
赵4老师
2012-07-25
打赏
举报
回复
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
不要写连自己也预测不了结果的代码!
Corner
2012-07-25
打赏
举报
回复
常量值截断~留下0x56,相当于类型转换。
int a = 0x123456;
char b = (char)a;
nice_cxf
2012-07-25
打赏
举报
回复
就是溢出,但结果必然0x56这跟大小端没关系
图灵狗
2012-07-25
打赏
举报
回复
未知,CPU有大小端的差异,根据不同的字节存储顺序会有不同。
nice_cxf
2012-07-25
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
显然没有依据。
引用 5 楼 的回复:
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
这个还用找什么依据?有大端的系统自己测试以下不就知道了?
数据溢出截断而已,和cpu编译器有什么关系?如果是short必然0x3456
图灵狗
2012-07-25
打赏
举报
回复
显然没有依据。
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
就是溢出,但结果必然0x56这跟大小端没关系
有法定依据没?
[/Quote]
[转]
char
*p="1234567890"以及C/
C++
的内存
本文详细解析了C/
C++
中内存区域划分,包括栈、堆、全局区、文字常量区和程序代码区。重点阐述了字符串常量的存储位置及其引用时的注意事项,强调了正确使用字符串指针的重要性。
深入分析
C++
中
char
* str和
char
str[]的区别
本文深入探讨了使用递归来反转字符串的方法,并解释了C/
C++
中栈和堆内存分配的区别及应用。重点阐述了字符串常量与局部数组在内存中的不同存储方式及其对程序执行的影响。
char
*s 和
char
s[] 的区别
本文介绍了C语言中
char
*s和
char
s[]的区别,涉及栈区、堆区和全局区的概念,以及它们在内存分配上的差异。
char
*s是一个指针,指向可变大小的内存区域,而
char
s[]是数组,其大小和地址在生命周期内固定。此外,文章还探讨了字符串常量的内存表示和数组作为地址的概念。
char
*和
char
[]的区别
本文深入探讨C/
C++
中的堆和栈内存管理,解析两者的工作原理、申请方式及效率对比,通过具体代码示例说明堆栈存储内容的差异,帮助读者理解常量区、全局区等内存区域的概念。
char
*p="1234567890",这样的定义有问题吗?
本文详细解析了C/
C++
程序中的内存管理机制,包括栈区、堆区、全局区、文字常量区及程序代码区的具体作用和管理方式。同时,文章还探讨了字符串常量的存储位置及其引发的问题。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章