#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