对于char a = 0x123456;这种情况,C/C++语法是怎样规定的?

My_Love 2012-07-25 09:06:56
a == 0x56? or 未知?
...全文
288 7 打赏 收藏 转发到动态 举报
写回复
用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]

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧