c++联合union的用法
时间: 2024-09-16 09:00:52 浏览: 44
C++11中union的使用方法示例
5星 · 资源好评率100%
在 C++ 中,联合体(union)是一种特殊的用户定义数据类型,它允许你在内存中占据同一块区域来存储不同类型的数据。联合体内的所有成员共享同一段内存空间,其中存储的是最后一个成员的值。以下是联合体的一些基本用法:
1. 定义联合体:
```cpp
union MyUnion {
int integer;
char character;
float float_value;
};
```
2. 存储和访问:
- 当你声明一个联合体变量并赋值给其中一个成员时,其他成员会被清除(保留原值的只有最后一个赋值的那个成员)。
```cpp
MyUnion uni;
uni.integer = 42; // 'character' 和 'float_value' 的内容将被清除
uni.character = 'A'; // 'integer' 的内容被清除,'character' 成为新的存储区
```
3. 尺寸计算:
虽然联合体成员可以有不同类型的大小,但整个联合体的尺寸始终是最大的那个成员的尺寸。
4. 类型转换:
由于它们共用同一内存区域,可以通过隐式类型转换在不同成员之间切换数据。
```cpp
union UniExample {
char ch;
int i;
};
UniExample e;
e.i = 10; // 'ch' 中的字节被覆盖,值为 10
char ch_val = e.ch; // 现在 ch_val 中保存了原始的整数值 10
```
阅读全文