关键字-struct
struct student
{ int num;
char name[20];
float score;
}stu[ ]=
{
{.num=10101, .name="Li Ming", .score=88},
{.num=10102, .name="Zhang Jin", .score=92},
{.num=10103, .name="Wang Lin", .score=98.5}
};
使用结构体存在的问题: 内存空洞 字对齐半字对齐
struct node
{char ch;
int num;
}; 变量占8个字节
struct node
{char ch;
int num;
char ch1;
}; 变量占12个字节
struct node
{char ch;
int num;
char ch1;
char ch2
}; 变量占12个字节
struct node
{char ch;
char ch1;
char ch2
}; 变量占3个字节
int型变量占四个字节 字对齐
后一个变量若能在前一个变量分配的空间中存放下,则后一个变量不再重新分配空间。
struct node
{char ch;
int num;
char ch1;
char ch2;
double c;
char ch3;
short b;
}; 变量占24个字节
struct node
{char ch;
short num;
char ch1;
short b;
}; 变量占10个字节
short型变量占2个字节 半字对齐
减少内存空洞的方法:同类型的成员定义放在一起!