联合体/共用体

联合体定义:

在IT领域中,联合体通常指的是一种数据结构,用于存储不同数据类型的组合体。在一些编程语言中,如C语言中的联合体(union),允许在同一块内存地址存储不同类型的数据。联合体中的所有成员共享同一块内存空间,这意味着每次只能存储其中的一个成员的值,节省内存空间。通过访

问不同的成员,可以在程序中实现对不同类型数据的灵活处理。


联合体的定义方式:

例如:

union MyUnion {
    int a;
    char b;
    long c;
};

结构体的存储空间:

1、联合(union)是一种特殊的数据类型,它允许不同的数据类型共享同一块内存空间,只能同时存储其中一个成员的值。

2、 内存空间的大小为最大成员变量空间 ,但要注意内存对齐,可能要调整这个大小

例如:上述联合体,int类型为4字节,long int 类型为4字节,char类型为1字节,所以该联合体的内存空间为4字节。

3、对一个成员的赋值会影响到其他成员的值


联合体示例程序:

#include <stdio.h>

union MyUnion{
    int num;
    char c;
};

int main()
{
    union MyUnion u = {0};

    u.num = 97;
    printf("%d\n",u.num);//32位二进制,最后8位01100001对应ascll码a
    printf("%c\n",u.c);//

    u.c = 'A';
    printf("%d\n",u.num);
    printf("%c\n",u.c);

    u.num = 865;
    printf("%d\n",u.num);//32位二进制0.....001101100001最后8位01100001十进制65
    printf("%c\n",u.c);//对应ascll码a

    return 0;
}

运行结果

97
a
65
A
865
a
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值