【时时三省】(C语言基础)共用体/联合体

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

共用体

共用体的核心就是

一种数据可能有多种类型

就比如 如果要用一个变量存放钱,钱有很多种类型,可以是10,或者10.5,或者10万,有int型和double型,还有字符型,这个时候就可以用到共用体

他的格式和结构体很像

定义的格式是:

绿色的是这个共用体的名字,可以自定义

使用的格式是:

而且定义共用体的时候,前面也可以加typedef关键字,可以给这个共用体起别名,后面使用的时候就可以直接用别名来定义了

共用体的特点

共用体,也叫联合体,共同体

所有的变量都使用同一个内存空间

所占的内存大小=最大成员的长度(也受内存对齐影响)

(细节:

以最大的单个成员的长度为准

总大小一定是最大成员的整倍数)

每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据

共用体和结构体的区别

结构体:一种事物包含多个属性

共用体:一个属性有多种类型

上面是代码层面的区别

内存里面的区别:

存储方式:

结构体:各存各的

共用体:存一起,多次存会覆盖

内存占用:

结构体:各个变量的总和(受内存对齐影响)

共用体:最大类型(受内存对齐影响)

相关推荐
三品吉他手会点灯1 小时前
C语言学习笔记 - 36.数据类型 - 为什么需要输出控制符
c语言·开发语言·笔记·学习
阳光九叶草LXGZXJ2 小时前
自制数据库迁移工具-C版-07-HappySunshineV1.6-(支持PG、达梦、Gbase8a)
linux·c语言·开发语言·数据库·学习·postgresql
星恒随风2 小时前
从0开始的操作系统学习之路(2)
c语言·笔记·学习
孬甭_2 小时前
单链表详解
c语言·数据结构
张二娃同学2 小时前
02_C语言数据类型_整型浮点型字符型一次讲清楚
android·java·c语言
鱼子星_3 小时前
【数据结构与算法】数据结构基础——栈和队列
c语言·数据结构
一枝小雨3 小时前
什么是标准C函数:以RISC-V架构下的C函数为例
c语言·risc-v·内核原理
三品吉他手会点灯3 小时前
C语言学习笔记 - 34.数据类型 - 编程规范与高效学习方法
c语言·开发语言·笔记·学习
Lucky_ldy3 小时前
C语言学习:动态内存管理(数据结构关键)
c语言·数据结构·学习
JackSparrow4143 小时前
彻底理解Java NIO(二)C语言实现 I/O多路复用+Reactor模式 服务器详解
java·linux·c语言·后端·nio·reactor模式