结果为B
union { unsigned char a1; unsigned int a2[2]; } c;
当一个共用体被声明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。以上例而言,最大长度是int 数组,所以c的内存空间就是int 数组。
差不多就像图片上说的
你可以结合下面这个看看