组别:普及组
难度系数:3
1、共享内存
也就是共享起始 地址。union变量中,可以包含union中的任何一个成员,但同一时间只能存储其中一 种类型的变量。该union变量的起始地址是固定的。
2、取最大成员的空间
既然union变量可以包含union中的任何一个成员,所以分配的空间必须确保能放得下最大的变量,这一点也比较容易理解。
3、成员类不可以有构造函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> using namespace std; struct times{ char c; float n; int h; }; union day{ int m; char t; float o; }; int main(){ times sum; day days; cout<< sizeof(sum)<<endl; cout<< sizeof(days)<<endl; days.m=10; days.t='t'; days.o=2.4; cout<<days.o; } |
结构体在内存中会有内存对齐的概念