4452: 【例】联合体
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:13
解决:9
题目描述
在 C++ 中,union 是一种特殊的数据结构,它允许在相同的内存位置存储不同的数据类型。union 可以帮助节省内存,因为它们使用相同的内存空间来存储不同的数据类型,但是只能同时存储其中一个。
在定义 union 时,所有成员共享同一块内存空间。当为 union 的某个成员赋值时,会覆盖 union 中已有的值。这也是 union 的一个特点:它不会记录哪个成员是当前有效的,因此在使用 union 时,需要确保对应的成员是正确的。
样例输入 复制
样例输出 复制
联合体变量i的值:42
联合体变量d的值:3.14159
联合体变量c的值:A
提示
#include <iostream> using namespace std; /* 定义union联合体,联合体内多个变量共享内存 内存大小和占用空间最大的变量相同 同一时刻只有一个变量的值是有效的 */ union MyUnion { int i; double d; char c; }; int main() { MyUnion u; u.i = 42;//给联合体变量i赋值 cout << "联合体变量i的值:" << u.i << endl;//输出42,其他2个变量d和c无效 u.d = 3.14159;//给联合体变量d赋值 cout << "联合体变量d的值:" << u.d << endl;//输出3.14159,其他2个变量i和c无效 u.c = 'A';//给联合体变量d赋值 cout << "联合体变量c的值:" << u.c << endl;//输出A,其他2个变量i和d无效 return 0; }