c++union应用实例
时间: 2024-12-06 13:12:57 浏览: 16
在 C++ 中,`union` 是一种特殊的数据结构,它允许你在同一块内存区域存储不同类型的数据。`union` 的所有成员共享同一块内存空间,这意味着当其中一个成员变量被赋值时,其他成员变量的值会被覆盖。这在需要动态地改变数据类型或节省内存空间时很有用。下面是一个简单的 `union` 应用实例:
```cpp
#include <iostream>
union MyUnion {
int integer; // 整型
char character; // 字符型
float floatingPoint; // 浮点型
};
int main() {
MyUnion myUnion;
// 赋值整型
myUnion.integer = 100;
std::cout << "Integer value: " << myUnion.integer << std::endl;
// 改变类型并赋值字符
myUnion.character = 'A';
std::cout << "Character value: " << (char)myUnion.character << std::endl;
// 再次改变类型并赋值浮点数
myUnion.floatingPoint = 3.14f;
std::cout << "Floating-point value: " << myUnion.floatingPoint << std::endl;
return 0;
}
```
在这个例子中,当你从 `integer` 切换到 `character` 或者 `floatingPoint` 时,原来 `integer` 存储的位置现在变成了对应类型的值。如果试图同时访问多个成员,程序可能会出错,因为只有最后一个成员所指向的内存被有效利用。
阅读全文