一.共用体
1.应用场景:
一种数据可能有多种数据类型,因此我们可以使用共同体来定义这种数据
2.定义格式:
union 共同体名字 {数据类型1 成员1;数据类型2 成员2;...数据类型n 成员n;
}
3.简单案例:
#include<stdio.h>
union Money {double mond;int moni;char mons;
};int main() {union Money m;//赋值时每次只能对一种类型赋值,并且每次只能赋一个值 m.moni = 100;printf("%d\n", m.moni);
}
4.共同体也可以起别名便于我们使用,跟结构体起别名的方式是相同的
简单举例吧:
typedef union Money {double mond;int moni;char mons;
} M;
二.共同体的特点
1.共同体也叫联合体,共用体
2.所有的变量都使用同一个内存空间
3.所占的内存大小 = 最大成员的长度(也受内存对齐影响)
4.每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据
三.结构体和共用体的区别
结构体:一种事物中包含多个属性
共用体:一个属性有多种类型
1.存储方式:
结构体:各存各的
共用体:存在一起,多次存会把原有的数据覆盖
2.内存占用:
结构体:各个变量的总和(受到内存对齐的影响)
共用体:最大类型(受到内存对齐的影响)