C++ 入门4 ---- 共用体
=========C++ 入门4 ---- 共用体========
共用体(union)是一种数据格式,它能存储不同的数据类型,但是只能一次使用其中一种数据类型。由于共用体每次只能存储一个值。因此它必须有足够大的空间来存储最大的成员,所以,共用体的长度为其最大成员的长度。
共用体经常被用在,当数据项使用两种或者更多的格式(但不会同时使用)时,可以节省空间。比如,假设管理一个小商品目录,其中一些商品的ID为整数,而另一些的ID为字符串。这种情况下,可以这样做:
#include <iostream>
struct widge
{
char brand[20];
int type;
union ID
{
long id_num;
char id_char[];
} id_val;
};
int main()
{
widge prize;
std::cin >> prize.type;
if(prize.type == 1){
std::cin >> prize.id_val.id_num;//输入整形数字作为ID
} else {
std::cin >> prize.id_val.id_char;//输入字符串作为ID
}
if(prize.type == 1){
std::cout << prize.id_val.id_num << std::endl;//输出整形ID
} else {
std::cout << prize.id_val.id_char << std::endl;//输出字符串ID
}
return 0;
}