一个关于共用体的题目

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:45:25
下述程序的运行结果是
#include<stdio.h>
union ex
{int i;
char ch[2];
};
main()
{union ex r;
r.ch[0]=10;
r.ch[1]=1;
printf("%d",r.i);
grtch();
}
请详细解释下过程,谢谢

运行结果266,这个需要你的机器上int是2个字节的.
由于int i,和char ch[2],公用内存单元,
int 00000000 00000000 2个字节
char 00000000 00000000 数组2个字节
当设定r.ch[0]=10; r.ch[1]=1; 的时候
内存变成了 00000001 00001010 ,这个就是266