在c语言中,学习自定义类型,有数组,结构体,联合体,枚举。现在咱们来讨论一下后三者。
结构体原型声明:
struct tag
{
member-list;
}variable-list;
这样对于大都数没学过结构体的人来说看起来不是很懂。
那么咱们来具体的实例:
struct stu //stu为结构体名
{
char name[20]; //成员
int age; //成员
};
对于上面也是一个声明,那么怎么来定义结构体变量呢?
struct stu s;
这里的s就是结果构体变量,struct stu 就是类型。
那么怎么通过结构体来访问成员呢?结构体变量加点 例如:s.name s.age;
如果是结构体指针也可以通过->或者*p. 的方法来访问成员。
对于结构体初始化,可以在定义变量的时候初始化,例如:struct stu s = {"nihao",28};
对于重点掌握的是结构体内存对齐问题。
结构题内存的开辟像数组一样,在栈中开辟一段内存,从小到大依次分配。