1*10 = 10,但是根据对齐原则,内存会分配12
什么的对齐原则

楼上:为什么是56呢?要是那样的话应该是54啊!!
我也想不通什么是56,但结果就是这样.
不是什么高人,只不过学的时候关注这个问题了。
对齐是为了提高cpu处理效率,原则挺复杂(大致):
1、分配地址的顺序为成员声明顺序;
2、成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数;
3、结构结束大小必须为该结构中最大成员的倍数;(当该成员大小小于编译器默认的值时)
。。。。。还有一些想不起来了,给具体的题目吧。
比如:
struct stu
{
char name;
int dd;
double j;
};
sizeof(stu)=1+(3对齐)+4+8=16;
谢谢