共用体数据类型是指将不同的数据项组织为一个整体,它和结构体有些相似之处,但是共用体在内存中占用首地址相同的一段存储单元。
共用体的定义与声明
1. 共用体的一般定义形式
union typename
{
type1 var1 ;
type2 var2;
...
typen varn;
};
- 声明共用体数据类型变量有以下几种方式:
// 先定义共用体,再声明共用体变量
union myTest
{
int i;
char ch ;
double d;
};
myTest my_u ; //声明变量
// 直接在定义时声明共用体变量
union myTest
{
int i;
char ch;
double d ;
}mu_u;
// 直接声明共用体变量
union
{
int i ;
char ch ;
double d;
}my_u;
共同体的大小
- 共用体每个成员分别占有自己的内存单元。
- 共用体变量所占的内存长度等于最长的成员长度。
- 一个共用体变量不能同时存放多个成员变量的值,某一时刻只能存放其中的一个成员的值。
共用体的特点
- 共用体可以满足在同一内存段存放几种不同类型的数据。
- 能够访问的是共用体变量中最后一次被赋值的成员。
- 共用体变量的地址和它的各成员的地址都是同一个地址。
- 不能对共用体变量名赋值。
- 不能在定义共用体时对它进行初始化。
- 不能用共用体变量作为函数参数。