有关共用体的,那位高手能帮忙解释一下,万分感激。
#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?
>> 本文固定链接: http://www.vcgood.com/archives/2819
有关共用体的,那位高手能帮忙解释一下,万分感激。
#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?
>> 本文固定链接: http://www.vcgood.com/archives/2819
你必须先 登录才能发表评论。
Union 是共用体分配两个存储单元 开始p->i=5是没用有用的 因为它最后会被p->c[0]=10; p->c[1]=1; 两个语句覆盖 结果为0000000100001010 当求a.i的时候 就是266
非常感谢!