联合体
所有成员共享一个最大的类型空间
只能使用其中一个成员
与结构体的区别:
结构体是给每一个成员分配空间,联合体只分配一个最大的成员空间
定义联合体:只是定义一种新的类型
union 类型名
{
类型 成员1;
...
};
定义联合体变量:类型 变量名
union 类型名 变量名={只有一个值};
引用成员:(指针,变量名)
变量名.成员
指针->成员
#include<iostream>
using namespace std;
struct people
{
char name[10];
char sex;
short age;
};
union score
{
int c;
double cpp;
};
int main()
{
struct people p;
union score s={100};
cout<<sizeof(s)<<endl;
cout<<s.c<<endl;
return 0;
}
people的大小是14
score的大小是4
使用s.cpp会乱码
如果将cpp修改为short’
则cpp也可以输出100,因为short输出两个字节