C语言基础知识点(十八)联合、

【C语言】联合体-共用体 (union) 详解-阿里云开发者社区 (aliyun.com)

联合

在C语言中是一种数据类型,能在同一个内存空间中存储不同的数据类型(不是同时储存)。

典型用法:设计一种表以存储及无规律、实现也不知道顺序的混合类型。

使用联合类型的数组,其中的联合都大小相等,每个联合可以存储各种数据类型。

#include <stdio.h>
#include <string.h>


union Un
{
    int i;
    double c;
};
union Un un;
int main()
{
    printf("打印联合体中变量的地址\n");
    printf("&(un.i):%p\n", &(un.i));
    printf("&(un.c):%p\n", &(un.c));
    printf("地址相同,代表联合体中的变量公用一块内存地址\n\n");
    printf("将un.i的值赋值为5   ");
    un.i = 5;
    printf("un.i的值%d\n", un.i);
    printf("将un.c的值赋值为3.14   ");
    un.c = 3.14;
    printf("un.i的值%d\n", un.i);
    printf("un.i的值%f\n", un.i);
    printf("un.c的值%f\n", un.c);
    printf("从上面结果我们观察到同一时刻,只能存在一个联合体变量起作用,每次赋值都会进行覆盖\n");
    return 0;
}

这次采用在代码结果里加入注释来进行讲解,希望会更加直观。

联合的成员是遵循字节对齐,共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值