C语言的结构体自定义
http://c.biancheng.net/cpp/html/94.html (C语言结构体与指针)
http://c.biancheng.net/cpp/html/88.html (C语言结构体)
https://www.runoob.com/cprogramming/c-structures.html
typedef:
定义结构体时
这里使用了 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量,如下:
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;`
STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},
{10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87},
{10005,"ZhangSan", 95, 80, 88}};
STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];
这里用户自定义的数据类型为STU,所以最后一行代码中 n 和 ss[N] 都是结构体变量。
t[N]和ss[N]都是结构体数组,只不过t声明了初值,ss没有声明。
结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而通常这种指针的应用是为了实现一些更高级的数据结构如链表和树等。
创建链表时用到第二种定义方法