共同体 是一个特殊的数据类型。允许在相同的位置存储不同类型的数据。与结构体类似。
- 需要用到 union 语句
- 同一时间只能一个成员变量有正确的赋值
- 访问时需要使用成员访问运算符(.)
- 共同体的内存占用是成员中最大占用
- 标签名可选,可以没有
union Data {int i ; float f; char str[20];}
写一个方法简单实验一下:
int union_demo()
{
union Data
{
int i;
float f;
char str[20];
}data;
data.i = 23;
printf("data i : %d\n", data.i);
printf("data size : %d\n", sizeof(data));
union Data data1;
data1.i = 1;
printf("data i : %d\n", data1.i);
strcpy(data1.str, "哈哈");
printf("data str : %s\n", data1.str);
printf("data i : %d\n", data1.i);
}