共用体union学习心得

共用体的概念

        共用体也称为联合体,可以使几种不同类型的变量存放到同一段内存单元中。所以共用体在同一时刻只能有一个值,它属于某一个数据成员。由于共用体所有成员位于同一段内存,因此共用体的大小就等于最大成员的大小。

共用体的数据特点:

1、同一个内存段可以用来存放几种不同类型的成员,但是每一次只能存放其中一种,而不是同时存放所有的类型。也就是说在共用体中,只有一个成员起作用,其他成员不起作用。

2、共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就会失去作用。

3、共用体变量的地址和它各个成员的地址是一样的。

#include <stdio.h>
union MyUnion  // 声明共用体类型
{
    int a;     // 共用体成员变量
    char c;
};
int main()
{
    union MyUnion un; // 定义共用体变量 un
    un.a = 97;        // 为共用体的成员变量赋值
    printf("变量a的值:%d\n", un.a); // 输出成员变量的数据
    printf("变量c的值:%c\n", un.c);
    un.c = 'A';                      // 改变成员变量的数据
    printf("变量a的值:%d\n", un.a);
    printf("变量c的值:%c\n", un.c);
    return 0;
}

运行结果: 

在程序中改变共用体的一个成员,其他成员也会随之改变。当给某个特定的成员进行赋值时,其他成员的值也会具有一致的含义,这是因为它们的值的每一个二进制位都被新的值所覆盖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值