C语言的题

[复制链接]
查看11 | 回复3 | 2011-6-9 13:49:48 | 显示全部楼层 |阅读模式
下面程序输出的结果是
union x
{ char a[2];
int i;
}y;
y.i=0xabcd, printf("%x%x",y.a[0],y.a[1]);

回复

使用道具 举报

千问 | 2011-6-9 13:49:48 | 显示全部楼层
union关键字声明联合体(共用体),联合体的各成员的存储空间公用。y.i=0xabcd,则y.a数组里也同样存储0xabcd,y.a数组是char类型,char类型变量可存储一个字节,a[0]存储低一个字节,即cd,a[1]存储高一个字节ab。因此输出cdab。注:0x开头的整数为16进制数,printf函数里%x即表示将整数按照16进制输出。...
回复

使用道具 举报

千问 | 2011-6-9 13:49:48 | 显示全部楼层
CDAB...
回复

使用道具 举报

千问 | 2011-6-9 13:49:48 | 显示全部楼层
y.i = 0xabcda[0] = 'd',a[1] = 'c',a[2] = 'b',a[3]='a';printf("%x%x",y.a[0],y.a[1]); ==>printf("%x%x",(int)(y.a[0]),(int)(y.a[1]));...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行