1.什么是共用体类型
使用同一段内存单元存放不同类型的变量称为共用体
union 共用体
{
成员列表
}变量表列;
三种方式定义
union Data
{
int i;
char ch;
float f;
}a,b,c;
union Data
{
int i;
char ch;
float f;
};
union Data a,b,c;
union
{
int i;
char ch;
float f;
}a,b,c;
2.引用方式
a.i
3.共用体类型数据的特点
(1)使用同一个内存段存放几种不同类型成员,在每一瞬间只能存放一个成员,而不是同时存放几个,因为存储单元只能存放一个内容,也就是数=说只能存放一个值
union Data
{
int i;
char ch;
float f;
}a;
a.i=97;
(2)可以对共用体变量初始化,但初始化表中只能有一个常量。
union Data
{
int i;
char ch;
float f;
}a={1,'a',5}; //错误,不能初始化三个变量,他们占用同一字段
union Data a={16};
union Data a={,ch='j'};
(3 )共用体变量起作用的成员是最后一次被赋予值的成员,在对其共用体变量中的一个成员赋值后,原有变量存储单元中的值就取代。
(4)共用体变量的地址和它的各成员的地址都是同一地址
(5)不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。
(6)以前C规定不能把共用体变量作为函数参数,但可以使用指向共用体变量的指针作为参数。C99允许用共用体变量作为函数参数
(7)共用体类型可以出现在结构体类型定义中,也可以定义共用体数组,反之结构体也可以出现在共用体类型定义中,数组也可以作为共用体的成员