社区
新手乐园
帖子详情
int i = 0x12345678;
sunboyljp
2006-12-25 10:35:43
int i = 0x12345678;
if (*(char *)&i == 0x12)
今天在网上看到这个,那我想问一下:(char*)&i是什么意义啊?
...全文
311
3
打赏
收藏
int i = 0x12345678;
int i = 0x12345678; if (*(char *)&i == 0x12) 今天在网上看到这个,那我想问一下:(char*)&i是什么意义啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
【笔试题】有关大小端问题
#include void main() { union { short k; char i[2]; }*s, a; s = &a;... s->i[0] = 0x39;... s->i[1] = 0x38;...
int
q = a.k;... //
int
i =
0x12345678
; //pr
int
f("%0x\n",i); system("pause"); }
c语言中数据存放方式(大小端)
int
a =
0x12345678
;(a在内存中占4个字节) char* b = (char*)&a; 如果b[0]对应的值为0x12,则高位数据存放在低址值(大端) 如果b[0]对应的值为0x78,则低位数据存放在低地址(小端) #include<stdio.h> ...
int
i =(short ) 0x800
(1)short i = 0x8000;//有警告:“初始化”: 截断常量值” (2)
int
j = i;...因为(1)0x8000是数字,数字默认是
int
型的,
int
的表示范围比short大,所以从
int
隐式转换为short会警告截断。如果改成显示转换shor
将0x11223344转换为0x44332211(大小端转换)
int
a = 0x11223344; char *p = (char *)&a; pr
int
f("%#x\n",a); pr
int
f("%#x %#x %#x %#x\n",p[0],p[1],p[2],p[3]); for(
int
i= 0;i<2;i++){
int
j = 3-i;
int
tem = p[i]; p[i]=p[j]; p[j]=...
int
i=010 与
int
i=10 区别:
前面的一种表示的是按照八进制进行表示的i,后者...
int
i=010;
int
j=020; //一定要弄清楚这一点是为什么? System.out.pr
int
ln(i); //8 System.out.pr
int
ln(j); //16 System.out.pr
int
ln(i|4); //12 System.o
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章