typedef struct LNode { Elemtype data; struct LNode *next; }LNode , *LinkList; 为什么要typedef

*LinkList是什么意思
2024-11-28 09:43:57
推荐回答(4个)
回答1:

*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
两者作用相同,但是后者更加清晰和容易明白。

回答2:

typedef 是类型定义,将结构体的名字定义成LNode,其实意思就是
typedef struct LNode LNode;
typddef struct LNode* LinkList;

LNode tLNode; // 是结构体变量
LinkList p; // 是结构体指针

回答3:

typedef 只是给数据类型一个简写或者叫别名,便于编码时方便使用,也就相当于给人取个外号。
如果不用typedef的话, 你每次用这个结构定义变量的时候,就要协商一堆的struct..., 如果用typedef的话,就可以直接用LNode定义变量了。

回答4:

将自定义的结构体定义成两种类型,一种是结构体自己,一种是结构体指针类型,逗号隔开只是语法要求