前面教程汇总
第一讲
第二讲
第三讲
第四讲
第五讲
第六讲
第七讲
第八讲
第九讲
联合体(共用体)union
联合体也叫共用体,是一种特殊的自定义类型。
union
是联合体的关键字。
这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间(所以联合也叫共用体)。
联合体语法形式:
(书写的格式和结构体类似)
union ud
{
int a;
char b;
};
联合体的特点
联合体的特点:联合体成员都是使用同一块空间,每次使用空间只能选一个成员使用,不能同时使用。
比如:a
成员使用空间,那 b
成员就不能使用,反之 b
成员使用空间,那 a
成员就不能使用。
例如:
下面测试联合体的大小问题。
#include <cstdio>
using namespace std;
union ud
{
int a;
char b;
};
int main()
{
union ud u;
printf("%d\n",sizeof(u));
}
测试结果:4
结果为什么是 4 呢?
联合的成员是共用同一块内存空间的,这样一个联合变量的大小至少是最大成员的大小(因为联合体至少得有能力保存最大的那个成员)。
那么联合体的成员大家的地址都是一样的。
因为二者共用一个内存的话,二者指针指向的位置必须是一样的这样才能找到相应的空间。
以上就是关于联合体的全部内容,你学会了吗?数据结构已经基本讲完,下期我会开启一个全新的专题——预处理器,会为大家讲解宏定义、#undef
、条件编译等预处理器指令。