首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言中union有关问题

2012-10-17 
c语言中union问题(30)已知:union u_type{ int ichar chfloat a}temp现在windows环境下,执行temp.i26

c语言中union问题
(30)已知:
union u_type
{ int i;
 char ch;
 float a;
}temp;
现在windows环境下,执行"temp.i=266;printf("%d",temp.ch)"的结果是( )。
 A、266
 B、256
 C、10
 D、1

为什么会是C?

[解决办法]
刚才的16进制,前面加4个0,方法不变。
[解决办法]
联合体的总长度为4个字节。那么
temp.i = 266 ,这四个字节里存放的为266,十六进制为 00 00 01 0A,而char ch;为一个字节,所以取的是第一个字节(根据小端)即0x0A;就是10。

热点排行