【摘要】:但在访问共用体成员时,共用体变量中起作用的是最后一次存入的成员变量的值,原有成员变量的值将被覆盖。ANSIC标准允许在两个类型相同的共用体变量之间进行赋值操作。
共用体的类型说明和变量的定义方式与结构体的类型说明和变量定义方式相同。所不同的是,结构体中的成员各自占有自己的存储空间,而共用体的变量中的所有成员占有同一个存储空间。
1.共用体类型的定义
其一般形式如下:
说明:
(1)union是关键字,是共用体类型的标志。共用体名是用户定义的类型标识,在说明中可以不出现。
(2)大括号{}中的内容是组成该共用体的成员。
(3)当有多个相同类型的成员时,成员说明之间用逗号分隔。
例如:
2.共用体变量的定义
共用体变量的定义和结构体相同,也可以用以下四种形式进行定义:
(1)在定义共用体类型的同时定义变量。一般形式如下:
union共用体名
{
成员定义表;
}变量名表;
(2)先声明共用体类型,再定义共用体变量。一般形式如下:
union共用体名变量名表;
(3)直接定义共用体类型变量。一般形式为:(https://www.xing528.com)
成员定义表;
}变量名表;
(4)使用typedef说明一个共用体类型名,再用新类型名来定义变量。
3.共用体变量的引用和赋值
(1)共用体变量中每个成员的引用方式与结构体完全相同。可以使用以下3种形式:
共用体变量名.成员名
指针变量名->成员名
(*指针变量名).成员名
共用体中的成员变量同样可参与其所属类型允许的任何操作。但在访问共用体成员时,共用体变量中起作用的是最后一次存入的成员变量的值,原有成员变量的值将被覆盖。
(2)共用体变量的整体赋值。ANSIC标准允许在两个类型相同的共用体变量之间进行赋值操作。例如:
c1.i=3;
程序将执行:
c2=c1;
printf(“%d\n”,c2.i);
程序执行结果为:
3
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
