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;
}