#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)的整数倍