64,650
社区成员
发帖
与我相关
我的任务
分享
union 共用体名
{
int 变量名1;
char 变良名2;
double 变量名3;
};
共用体名 使用该共用体的共用体变量名;
共用体变量名.共用体内其中一个类型的变量名 = 值; //给共用体赋值
#include<iostream>
using namespace std;
int main()
{
union abc //定义共用体abc
{
int a;
char b;
double c;
};
abc apple; //声明apple共用体
apple.b = 'a'; //初始化apple共用体char b的值为字符串a
cout << apple.b << endl;
apple.a = 10; //覆盖apple共用体的内存,用int a的值取代char b值
cout << apple.a << endl;
system("pause");
return 0;
}
#include<iostream>
#include<string>
using namespace std;
struct abc //定义结构abc
{
string a; //结构的第一个成员为string a
union //结构的第二个成员为共用体,具体哪个需要看声明和初始化
{
int b; //共用体的第一个成员为int格式
double c; //共用体的第二个成员为double格式
};
};
int main()
{
abc gtt = { "数值" }; //声明gtt结构, 采用abc结构的形式,并初始化第一个成员的值为“数值”
gtt.b = 1; //初始化gtt结构的第二个成员,并且第二个成员采用共用体的第一个成员int类型
cout << gtt.a << endl; //输出结构的第一个成员
cout << gtt.b << endl; //输出结构的第二个成员(且格式为共用体第一个成员的类型)
gtt.c = 1.11; //覆盖gtt结构的第二个成员的值,并且采用的格式为共用体第二个成员的double类型
cout << gtt.c << endl; //输出结构第二个成员的值(且格式为共用体第二个成员的类型)
system("pause");
return 0;
}