读书人

c语言中union有关问题

发布时间: 2012-10-17 10:25:46 作者: rapoo

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。

读书人网 >C语言

热点推荐