struct student{};struct student a;//定义结构student,再定义其变量a
而 “struct student{}a” 与上等同
而typedef struct student{}a;其中的a 只是结构体struct的一个类型别名,就是给这种数据类型起一个别的名字
typedef struct LNode {
ElemType data;
struct LNode *next;
}*LinkList;//类型别名
*LinkList 表示 LinkList是一个 struct LNode *的类型别名,也就是
LinkList 与 struct LNode * 是等价的,在程序中,这两个是可以互换的,作用是等同的。
typedef是类型重定义符,这里是因为C语言使用结构体时都要加上struct作为前缀,如:
struct LNode *p,*q; //定义p,q两个结构体指针
如果typedef把 struct LNode *重新定义为LinkList后,就可以这样简单地写了:
LinkList p,q; //定义两个结构体指针p,q
两者作用相同,但是后者更加清晰和容易明白,就是进行简化了