c语言sizeof相关问题

设sizeof(char) = 1, sizeof(int) = 2,sizeof(float) = 4。对于定义:
union { char field4; int field5; float field6;} x;
语句printf("%d", sizeof(x));的输出结果是 4 。

求解答,求解题过程!
谢谢程序员们

可以看下 c参考手册中的 c语言--sizeof 运算符

共用体的所有成员占用同一段内存。