1、struct结构体的嵌套
所谓struct嵌套,就是一个 struct 结构是另一个 struct 结构的成员(属性),这种嵌套可能会有多层。先说嵌套 struct 结构的声明,如果把嵌套结构体外结构称为父结构体,在内部的结构体称为子结构体的话,那声明顺序就是先声明儿子,再声明老子。给嵌套结构体变量的赋值也是同样的顺序,先给子结构体变量赋值,然后再将赋值已毕的子结构体赋给赋值给父结构体。赋值或者显示过程中,从父结构体变量到子结构体变量最后到内置类型变量靠的是一系列点 ".",如果是指针变量就是 "->" 。
用一个小程序说明上述步骤:
#include<stdio.h>
int main(void)
{
//定义子结构体——教师
typedef struct
{
char name[32];
char course[64];
} Teacher;
//定义子结构体——学生
typedef struct
{
char name[32];
char class[32];
} Student;
//定义父结构体——学校
typedef struct
{
Teacher teacher[20];
Student student[100];
} School;
//声明父结构体变量
School school;
//声明子结构体变量并赋值
Teacher t1 = { "张老师","数学" }, t2 = { "王老师","语文" };
Student s1 = { "李四","一班" }, s2 = { "赵五","一班" }, s3 = { "刘七","二班"};
//这里如不是使用{ }法赋值