#include<stdio.h>
#include<stdlib.h>
int main()
{
union example
{
struct
{
int x;
int y;
}in;
int a;
int b;
}e;
e.a=2;
e.b=1;
e.in.x=e.b+e.a;
e.in.y=e.b*e.a;
printf("%d\n",e.in.y);
return 0;
}
是不是只要这四个变量任意一个变量的值改变,这个值就覆盖了所有的变量,所有的变量都为那个值?还是说结构体中的变量不会被覆盖?
在这个union中,int a和int b,in.x 这三个其实是同一个 e.a=1; //执行后 a和b都是1 e.b=2; //执行后 a和b都是2 e.in.x=e.a*e.b; //执行后 x是4,所以a和b也变成4 e.in.y=e.a+e.b; //执行后 y是8
2172

被折叠的 条评论
为什么被折叠?



