c高手们帮忙呀

来源:百度知道 编辑:UC知道 时间:2024/06/27 09:16:02
#include <stdio.h>
union pw
{int i;
char ch[2];}a;
main()
{a.ch[0]=13;a.ch[1]=0;printf("%d\n",a,i}
请问为什么得13????????
能不能解释得再清楚一点,什么叫低8位,高8位

因为这是内联结构的特点阿
你的内联结构中:
ch[0]对应i的低8位
ch[1]对应i的高8位
那么ch[1]=0,ch[0]=13,就使得i=0x000D=13(十进制)
同理,如果你让ch[1]=13,ch[0]=0,就使得i=0x0D000=3328(十进制)了

因为联合的特征是成员共享一段内存。