关于共同体 ( union ) 和 结构体(struct)的区别:
1. 共用体和结构体都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在。
2. 对于共用体的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构体的不同成员赋值是互不影响的。
示例代码如下:
a) 结构体:
#include <iostream>
int main() {
struct Data {
int i;
char c;
} data;
data.i = 5;
data.c = 'a';
std::cout << data.i << '\n' << data.c << std::endl;
return 0;
}
输出:
5
a
2) 共同体:
#include <iostream>
int main() {
union Data {
int i;
char c;
} data;
data.i = 5;
data.c = 'a';
std::cout << data.i << '\n' << data.c << std::endl;
return 0;
}
输出:
97
a