
联合体和枚举的基本概念、语法、初始化、引用方式及实际应用等方面
一、联合体(共用体)
1. 基本概念与特性
- 定义:联合体(union)是一种自定义数据类型,其所有成员共用同一块内存空间,同一时刻只有一个成员有效。
- 与结构体的本质区别:结构体成员各自占用独立内存,联合体成员共享内存。
- 核心特性:
- 联合体的尺寸等于其最大成员的尺寸(需满足地址对齐)。
- 给一个成员赋值会覆盖其他成员的值(内存共享导致)。
- 成员间呈 “互斥” 关系,某一时刻仅能使用一个成员。
2. 定义与语法
| union 联合体标签 { 数据类型 成员1; 数据类型 成员2; // ... 更多成员 }; |
- 联合体标签:用于区分不同联合体(可省略,省略后无法通过标签定义变量)。
- 成员:可为任意数据类型(基本类型、数组、指针等)。
示例:
| // 定义一个包含多种数据类型的联合体 union data { char c; // 1字节 int i; // 4字节 double d; // 8字节 }; |
3. 初始化与引用
初始化
- 只能初始化一个成员(多个初始化会被覆盖,编译器会警告)。
- 支持普通初始化和指定成员初始化,最终仅最后赋值的成员有效。
示例

最低0.47元/天 解锁文章
962

被折叠的 条评论
为什么被折叠?



