二级考试C语言的联合类型讲解
“联合”和“结构”有一些相似之处。但两者有本质区别。在结构中,每个成员都有自己的内存空,一个结构变量的总长度是每个成员长度的总和。在“联合”中,每个成员共享一个内存空,一个联合变量的长度等于每个成员的最大长度。需要注意的是,这里所谓的共享并不是指多个成员同时加载到一个联合变量中,而是联合变量可以赋予任意成员值,但每次只能赋予一个值,新值会刷新旧值。比如前面提到的“单位”变量,如果定义为可以加载到“班级”或“教研室”的组合,则允许赋予整数值(班级)或字符串(教研室)。给它一个整数值或者一个字符串,不能两个都给。联合类型的定义和联合变量的描述必须先定义联合类型,然后才能将变量描述为联合类型。
一、联合的定义
定义联合类型的一般形式是:
Union name
{
成员表
};
成员表包含几个成员。成员的一般形式是:类型说明符,成员名,成员名的命名要符合标识符的规定。
例如:
union perdata
{
int类;
char office[10];
};
定义了一个名为perdata的union类型,它包含两个成员,一个是integer,一个是class。另一个是字符数组,数组名是office。定义了联合之后,就可以描述联合变量了。它被描述为perdata类型的变量,可以存储整数类或字符数组office。
位律师回复
0条评论