http://baike.baidu.com/view/109447.htm
main()
{
union exx
{
int a,b;
struct
{
int c,d;
}lpp;
}e={10};//
e.b=e.a+20;//由于只保存一个值,所以e.b=30;
e.lpp.c=e.a+e.b;//这里e.a和e.b都为30 e.lpp.c为60
e.lpp.d=e.a*e.b;//e.lpp.d 为3600
printf("%d,%d\n",e.lpp.c,e.lpp.d);
}
由于结构体每个成员都存在即存在内存中,因而e.a和e.b 后来取的值都是结构体中第一个成员的值,所以为60