C语言:结构体的应用

那个birthday是什么?为什么要加个birthday?有什么用吗?

typedef struct date
{
  int year;
  int month;
  int day;
}DATE;

typedef struct student
{
  char name[];
  DATE birthday;
}STUDENT;

这是一个结构体嵌套的问题。首先你要知道的是,我们定义结构体通俗的来讲就是自创了一种数据类型(一种由多个不同类型数据组成的集合),自创的数据类型同其他自带的数据类型一样,都是可以定义变量的。
你首先是定义了一个生日的数据类型(包含的信息是年月日)
而后你又定义了一个人的结构体数据类型,包含的信息有名字和生日,这里的生日就是借助你之前定义的生日结构体数据类型在定义变量,这就是所谓的结构体嵌套,在定义结构体的时候,里面有用到结构体的数据类型。

那是变量名,这个叫做嵌套,也叫套娃结构,就是俗称而已。你上面定义的结构体就是一个数据类型,和你的int,char等数据类型都是一样的,就是一个数据类型,定义了一个birthday变量。叫做结构体变量

找个题感受一下或者编译器设置运行一下,这样能很快上手

如果我没记错的话,data是你定义的结构体类型,那个birthday应该是变量名