共用体(union)
在C语言中,当不同数据类型的数据共同占有使用一块内存空间时,这个数据构造类型叫做共用体,也叫联合体。共用体用的地方比较少,使用形式与结构体类似,但是内存使用方式不同。
1--- 定义
union 共用体类型名
{
成员表列;
}变量名1;
union 共用体类型名 变量名2;
2--- 成员共用同一个存储区域,共用体类型变量是以最后一次传递数值为准,之前其他成员所赋的值被覆盖(是不是完全覆盖看成员类型空间大小,如一个4字节int型被1字节char型覆盖掉一个字节,输出的是所覆盖的char型值,剩下的空间也不再访问)。
3--- 共用体中可以定义多个不同数据类型,共用的存储空间大小是以最大的数据类型为准。
4--- 所有成员都从低地址开始存放。
1 #include <stdio.h> 2 3 union we //we:共用体类型名 4 { 5 int a; 6 char b; 7 }u1,u2; //u1:变量 8 9 10 int main(int argc, const char *argv[]) 11 { 12 u1.a = 177; 13 u1.b = 'a'; 14 15 printf("u1.a = %d\n", u1.a); 16 printf("u2.b = %c\n", u1.b); 17 18 return 0; 19 }