1.结构体的声明
struct tag
{
member-list;
}variable-list;
2.结构体变量的创建和初始化
#include
struct Stu
{
char name[20];// 名字
int age;// 年龄
char sex[5];// 性别
char id[20];// 学号
};
int main()
{
// 按照结构体成员的顺序初始化
struct Stu s = { " 张三 ", 20, " 男 ", "20230818001" };
printf("name: %s\n", s.name);
printf("age : %d\n", s.age);
printf("sex : %s\n", s.sex);
printf("id : %s\n", s.id);
// 按照指定的顺序初始化
struct Stu s2 = { .age = 18, .name = "lisi", .id = "20230818002", .sex = " ⼥"}
printf("name: %s\n", s2.name);
printf("age : %d\n", s2.age);
printf("sex : %s\n", s2.sex);
printf("id : %s\n", s2.id);
return 0;
}
3.对齐规则
*对 ⻬数=编译器默认的⼀个对⻬数与该成员变量⼤⼩的较⼩值
*VS中默认对齐值为8
*Linux中gcc没有默认对⻬数,对⻬数就是成员⾃⾝的⼤小
*结构体总⼤⼩为最⼤对⻬数(结构体中每个成员变量都有⼀个对⻬数,所有对⻬数中最⼤的)的 整数倍
*如果嵌套了结构体的情况,嵌套的结构体成员对⻬到⾃⼰的成员中最⼤对⻬数的整数倍处,结构 体的整体⼤⼩就是所有最⼤对⻬数(含嵌套结构体中成员的对⻬数)的整数倍