int i = 0x12345678;

sunboyljp 2006-12-25 10:35:43
int i = 0x12345678;
if (*(char *)&i == 0x12)
今天在网上看到这个,那我想问一下:(char*)&i是什么意义啊?
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
blue_zyb 2006-12-25
  • 打赏
  • 举报
回复
to:ls

big endian机器上为true,little endian机器上为false
cmouse 2006-12-25
  • 打赏
  • 举报
回复
&是取I的指针, (char*)是把这个指针强制转成字符指针, 前面的一个*是取出这个位置的值, 这个判断是“真”
blue_zyb 2006-12-25
  • 打赏
  • 举报
回复
就是把i的地址(&i)强制转换为char*。
在解除引用的时候,这个地址里面的内容将被解释为一个char
也就是, *(char*)&i 得到的是i第一个字节里面的内容(解释为char)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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