女运动员的肌肉:c++union问题

来源:百度文库 编辑:高校问答 时间:2024/04/28 11:43:08
求输出结果
void main()
{
union
{
int k;
char i[3];
}*s,a;

s=&a;
s->i[0]=0x39;
s->i[1]=0x38;
printf("%x\n",s->k);
}
//<-问为什么输出结果是3839,而不是3938?

与内存排列有关,因为在内存中
int型变量是从低位到高位(或者你看成从右到左)。

有人深爱着计算机科学,有人愿意为她付出一切的一切,有人愿意建立
QQ群22800661和同僚共同成长,让我们站在一起吧!!
WELCOME TO MY QQ GROUP !!