共用体 Union —— 学习笔记

目录

共用体基础知识

共用体和结构体的区别

共用体的实际应用


共用体基础知识

共用体的定义格式:

union 共⽤体名
{
    成员列表;
};

面试中或者工作中有时候也将共用体称为 “ 联合 ” 或 “ 联合体 ”。

共用体和结构体那么相似,区别在哪呢?

共用体和结构体的区别

1、共用体所有成员占用的是同一块内存;结构体中每个成员相互独立,占用不同的内存

2、共用体中修改其中任何一个成员就会影响到其余所有成员;结构体中每个成员互不影响

3、共用体变量占用的内存等于最长的成员占用的内存;结构体变量占用的内存大于等于所有成员占用内存的总和,成员之间可能会存在 “缝隙”。

共用体是怎么做到只占用一块内存的呢?成员为什么又是互相影响的呢?

这是因为共用体使用了 “ 内存覆盖技术 ”,同一时刻只能保存一个成员的值,如果对某个成员赋值就会把原来所有的成员的值通通覆盖。

共用体的实际应用

union haha
{
    int n;
    char ch;
    short m;
} animal, people;

1、“ haha ” 是共用体类型。

2、“ animal ” 、“ people ” 都是共用体变量。

3、“ sizeof ( haha ) ”、“ sizeof ( animal ) ”、“ sizeof ( int ) ” 的结果都是 4 。

4、共用体成员引用的方法:“ animal.n ”、“ animal.ch ”、“ animal.m ”。

  • 15
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值