首先结构体中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。
从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始,以结构体变量首地址为0计算。
因为char类型a1是一个字节所以把a1放在偏移量为1的大小上
因为int类型a1是四个字节所以把a1放在偏移量为4的大小上,前面的空着
a3放在为char个字节偏移量大小上
整个结构体大小是最大偏移量的整数倍,也就int的整数倍,所以这个结构体12个字节(32位)