union共用体

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

原文地址:https://www.cnblogs.com/huking/p/1702672.html