共用体(union)是一种数据格式。
它能存储不同的数据类型,但只能同时存储其中一种类型
共用体的用途是当数据类型可能是1种或者是更多种格式(但不同时使用)时,可节省空间。
🌰例子:
1 | #include <iostream> |
🌰 例子2:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int main() {
using namespace std;
struct widget
{
char brand[20];
int type;
union id
{
long id_num;
char id_char[20];
} id_val;
};
widget prize;
prize.brand[0] = 'z';
cout << "Please enter prize type, 1 or 2 \n";
cin >> prize.type;
// prize.type = 1;
// prize.id_val.id_num = 1;
// prize.id_val.id_char[0] = 'h';
if (prize.type == 1)
{ // 要用打括号括起来,假如if里有几行的话
cout << "Please enter prize.id_val in int \n";
cin >> prize.id_val.id_num;
cout << "Prize.id_val is " << prize.id_val.id_num << endl;
}
else
{
cout << "Please enter prize.id_val in char \n";
cin >> prize.id_val.id_char;
cout << "Prize.id_val is " << prize.id_val.id_char << endl;
}
return 0;
}