共用体(联合体):在同一个存储空间存储不同数据的类型。
1、共用体的大小大于等于其最长成员的大小。
union A{char a;short b;int c;};union A u1;printf("%d",sizeof(u1));
得出的结果为4(int)。
2、共用体的同一个内存块里可以用来存储不同的数据类型的成员。
union A u1;u1.a=0x12345678;//u1.a=78;u1.c=12345678;
3、共用体变量中的成员的值是最后一次存放的成员确定的,在存入一个新的成员的值后原有的成员的值会被覆盖。
u1.c = 65;
printf("%d,0x%d\n",u1.a,&u1.a);
printf("%d,0x%d\n",u1.a,&u1.a);
printf("%d,0x%d\n",u1.c,&u1.c);
三次打印出来的结果是相同的。
4、可以对共用体变量初始化,但是初始化列表只能有一个常量。