C的结构定义:typedef struct与struct的区别

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
两者作用相同,但是后者更加清晰和容易明白,就是进行简化了

猜你喜欢

转载自blog.csdn.net/qq_42276808/article/details/82926097