C语言学习之路--第十站 共同体

75 阅读1分钟

共同体 是一个特殊的数据类型。允许在相同的位置存储不同类型的数据。与结构体类似。

  • 需要用到 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);



}

image.png