得看编译器设置的字节对齐了,而且也得看编译器是怎么定义int的如果你不使用字节对齐,即紧凑存放,而且为32位编译系统,则a在内存中所占字节数为6*1+4*4+1*8=30个字节若是4字节对齐,32位系统,则8+4*4+8=32字节若是不字节对齐,16位编译系统(如TurboC2.0),则是6+4*2+8=22字节你的问题,和编译器有关,得给出前提。