满意答案
ap08034
2014.08.14
采纳率:57% 等级:10
已帮助:776人
首先确定你编译器是多少位的吧,以及使用哪种字节对齐方式。
若是32位编译系统,4字节对齐
long是4个字节,num占用4字节
char是一个字节,name占用10个字节,之后会填充2个字节
int是4个字节,score占用4*4=16个字节
结构大小为4+12+16=32个字节
#include
int main()
{
struct { long num; char name[10]; int score[4]; }st3;
printf("num\tAddress:%p Size:%d\n",&st3.num,sizeof(st3.num));
printf("name\tAddress:%p Size:%d\n",st3.name,sizeof(st3.name));
printf("score\tAddress:%p Size:%d\n",&st3.score,sizeof(st3.score));
printf("st3\tSize:%d",sizeof(st3));
getchar();
return 0;
}
00分享举报