#include <stdio.h>
struct person{
int age;
char name[10];
};
void main(){
struct person zs,ls;
printf("%d\n",sizeof(zs));
}
输出的结果为什么是16呢?不是应该是14吗?
#include <stdio.h>
struct person{
int age;
char name[10];
};
void main(){
struct person zs,ls;
printf("%d\n",sizeof(zs));
}
输出的结果为什么是16呢?不是应该是14吗?
这个就是所谓的字节对齐
你可以试试改 person
struct person{
int age;
char name;
};
结果是8
struct person{
char aaa;
int age;
char name;
};
结果是12
结构体的成员变量是顺序存储的
每个成员变量所占的大小都是字节对齐的 是字(4 byte)的整数倍