首页 > 用户发贴区 > 编程问题提问区 > 一道二级考题,高手麻烦解释一下,谢谢!
2008
10-12

一道二级考题,高手麻烦解释一下,谢谢!

有关共用体的,那位高手能帮忙解释一下,万分感激。


#include<stdio.h>
union pw
{
int i;
char c[2];
}*p,a;
void main()
{
p=&a;
p->i=5;
p->c[0]=10;
p->c[1]=1;
printf(“%d\n”,a.i);
}
为啥运行后结果是
266?


一道二级考题,高手麻烦解释一下,谢谢!》有 2 条评论

  1. JohnWayne 说:

    Union 是共用体分配两个存储单元  开始p->i=5是没用有用的 因为它最后会被p->c[0]=10; p->c[1]=1; 两个语句覆盖  结果为0000000100001010  当求a.i的时候  就是266 

  2. 星情飞飞 说:

    非常感谢!

留下一个回复