C语言中的联合体

来源:互联网 发布:安卓看美剧用什么软件 编辑:程序博客网 时间:2024/05/20 14:19

 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.联合体变量的赋值和使用

  对联合体变量的赋值、使用都只能是对变量成员进行。

联合变量的成员表示为:联合变量名.成员名

不允许对联合变量作初始化赋值,赋值只能在程序中进行。一个联合体变量,每次只能赋予一个成员值。一个联合体变量的值就是联合体变量的值就是一个成员的值。