博客摘录「 C语言中的结构体和联合体」2023年6月2日

共用体变量的引用与结构体类似,共用体变量中成员的引用方式为:共用体变量名.成员名只有先定义了共用体变量才能引用它,而且不能直接引用共用体变量,只能引用共用体变量中的成员。例如,前面定义了共用体变量 a,则:a.i 表示引用共用体变量中的整型变量 ia.c 表示引用共用体变量中的字符型变量 ca.f 表示引用共用体变量中的实型变量 f但不能只引用共用体变量,例如 printf("%d", a); 是错误的,因为 a 的存储区有好几种类型,分别占不同长度的字节,仅写共用体变量名 a,难以使系统确定究竟输出的哪一个成员的值。共用体类型数据的特点在使用共用体类型数据时,应当注意以下一些特点:同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一种,而不是同时存放几种。也就是说,每一瞬时只有一个成员起作用,其它的成员不起作用,即:共用体中的成员不是同时都存在和起作用的。共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后,原有的成员就失去作用了。例如有如下赋值语句:a.i = 1;a.c = 'F';a.f = 2.5; 在执行完以上 3 条赋值语句后,此时只有 a.f 是有效的,而 a.i 和a.c 已经无意义了。因此在引用共用体变量的成员时,程序员自己必须十分清楚当前存放在共用体变量中的究竟是哪个成员。共用体变量的地址和它的各成员的地址都是同一地址,例如 &a、&a.i、&a.c、&a.f 都是同一个地址值,其原因是显然的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值