概念:
联合(union)是一种数据类型,它能在同一个内存空间中储存不同的数据类型(不是同时储存)。
其典型的用法是,设计一种表以储存既无规律、事先也不知道顺序的混合类型。使用联合类型的数组,其中的联合都大小相等,每个联合可以储存各种数据类型。
定义:
创建联合和创建结构的方式相同,需要一个联合模板和联合变量。
可以用一个步骤定义联合,也可以用联合标记分两步定义。
下面是联合体的三种定义方式:
1. 用联合标记分两步定
union hold
{
int digit;
double bigfl;
char letter;
};
union hold fit;
(2,3步其实是一种类型)
2. 一个步骤定义联合
union hold //hold可以省略
{
int digit;
double bigfl;
char letter;
}fit;
3. 一个步骤定义联合
union
{
int digit;
double bigfl;
char letter;
}fit;
初始化与赋值
3 种初始化的方法:
1. 把一个联合初始化为另一个同类型的联合;
2. 初始化联合的第1个元素;
3. 或者根据C99标准,使用指定初始化项目。
union hold valA;
valA.letter='R'; //赋值
union hold valB = valA;
union hold valC = {88};
union hold valD = {.bigfl=118.2}; //指定初始化项目
使用:
成员运算符 .
成员运算符和结构或联合名称一起使用,用来指定结构或联合的成员。
间接成员运算符 ->
间接成员运算符和指向结构或联合的指针一起使用,用来指明结构或联合的成员。