8. 有如下结构体的定义: struct AA{ int *a,b; char c; }; 则sizeof(AA)的值是___________。

值为什么不是9 ? VC 6.0 编译是 12

因为编译器默认情况下会对字节进行对齐,VC++是按4字节边界进行对齐,所以这个结构体实际上的内存占用布局是
int* a; .....4字节
int b;.......4字节
char c;.....1字节
................3字节
存在由字节对齐而产生的多余空间。所以结果是4+4+4=12

想了解更仔细点的话,你可以到百度上搜索“字节对齐”,可以找到更详细的讲解。
温馨提示:答案为网友推荐,仅供参考
相似回答