#include<iostream> union u { double a; int b; }; union u2 { char a[13]; int b; }; union u3 { char a[13]; char b; }; int main() { std::cout << sizeof(u) << std::endl; std::cout << sizeof(u2) << std::endl; std::cout << sizeof(u3) << std::endl; return 0; }
时间: 2024-01-11 09:02:59 浏览: 98
这段代码定义了三个联合体 `u`, `u2`, `u3`,并输出它们的大小。
- `u` 中有一个 `double` 类型的成员和一个 `int` 类型的成员,因为 `double` 和 `int` 所占用的内存大小不同,所以 `u` 的大小为 `8`(`double` 所占用的内存大小)。
- `u2` 中有一个 `char` 数组和一个 `int` 类型的成员,因为 `char` 和 `int` 所占用的内存大小不同,所以 `u2` 的大小为 `16`(`int` 所占用的内存大小的两倍)。
- `u3` 中有一个 `char` 数组和一个 `char` 类型的成员,因为 `char` 所占用的内存大小相同,所以 `u3` 的大小为 `13`(`char` 数组的大小)。
因此,这段代码的输出结果为:
```
8
16
13
```
阅读全文