union联合体是一种类似于struct结构体的数据结构,它可以包含多种数据类型和变量,但是它们共享同一段内存空间,所以每次只能使用一个成员。union联合体的作用是节省空间,当一些数据不可能同时被用到时,可以使用union。union联合体的定义和使用方法与struct结构体类似,只是关键字从struct改为union。
//定义一个名为Data的联合体类型
union Data {
int i;
double x;
char str[16];
};
//声明一个Data类型的变量uvar
union Data uvar;
uvar.i = 10; //给i赋值
uvar.x = 3.14; //给x赋值,此时i的值被覆盖
strcpy(uvar.str, "Hello"); //给str赋值,此时x的值被覆盖
printf("%d\n", uvar.i); //访问i 结果不是10