首页 理论教育 C语言联合类型实践教程,联合类型,局部变量共享存储空间

C语言联合类型实践教程,联合类型,局部变量共享存储空间

时间:2023-11-01 理论教育 版权反馈
【摘要】:而联合类型变量中的所有成员占有同一个存储空间。此为先说明联合类型unionshare,再单独定义联合变量data和联合指针变量p。本例中的联合变量,包含整型成员class和字符成员position,它们将共用一个内存空间。定义联合变量应注意以下几点:①联合变量在定义的同时只能用第一个成员的类型的值进行初始化。

C语言联合类型实践教程,联合类型,局部变量共享存储空间

1.联合类型的说明和变量定义

联合类型又称共用体类型或共用体。联合类型的说明和变量的定义方式与结构体类型说明和变量的定义方式相类同。它们的区别是结构体变量中的成员各自占有自己的存储空间。而联合类型变量中的所有成员占有同一个存储空间。说明格式为:

union 联合名

{

数据类型1 成员名1;

数据类型2 成员名2;

……

数据类型n 成员名n;

}联合变量名表;

定义联合类型的变量、数组指针变量还可以用以下3种方式:

● 先说明联合类型,再单独进行定义。

● 说明一个无名联合类型的同时,直接进行定义。

● 使用typedef说明一个联合类型名,再用新类型名来定义变量。

例如:(www.xing528.com)

此为紧跟在联合类型union share说明之后定义联合变量data和联合指针变量p。也可以分开定义。

此为先说明联合类型union share,再单独定义联合变量data和联合指针变量p。

本例中的联合变量,包含整型成员class和字符成员position,它们将共用一个内存空间。

定义联合变量应注意以下几点:

① 联合变量在定义的同时只能用第一个成员的类型的值进行初始化

② 联合变量与结构变量的本质区别:结构变量中的每个成员分别占有独立的存储空间,因此结构变量所占内存字节数是其成员所占字节数的总和;而联合变量中的所有成员共享一段公共存储区,所以联合变量所占内存字节数与其成员中占字节数最多的那个成员相等。

③ 由于联合变量中的所有成员共享存储空间,因此变量中的所有成员的首地址相同,而且变量的地址也就是该变量成员的地址。

2.联合变量的引用

联合变量中每个成员的引用方式有以下3种:

① 联合变量名.成员名

② 联合指针变量名->成员名

③ (*联合指针变量名).成员名

说明:在访问联合变量成员时,联合变量中起作用的是最近一次存入的成员变量值,原有成员变量的值将被覆盖。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈