1. 联合体(union)与结构体(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间,一个结构体的总长度是个成员长度之和。而在“联合”中的,各成员共享一段内存空间,一个联合体的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。
联合体必须先定义后使用。
2.定义一个联合类型的一般形式为:
union 联合名
{
成员表
};
3.联合体变量的声明
(1)先定义后声明
union perdata
{
int ;
char b[10];
};
union perdata a,b;
(2)定义的时候同时声明联合体变量
union perdata
{
int ;
char b[10];
} a,b;
(3)直接声明联合体
union perdata
{
int ;
char b[10];
}a,b
4.联合体变量的赋值和使用
对联合体变量的赋值、使用都只能是对变量成员进行。
联合变量的成员表示为:联合变量名.成员名
不允许对联合变量作初始化赋值,赋值只能在程序中进行。一个联合体变量,每次只能赋予一个成员值。一个联合体变量的值就是联合体变量的值就是一个成员的值。