typedef在数据结构中的用法

来源:百度知道 编辑:UC知道 时间:2024/09/27 12:23:20
之前学过C语言的,最近在学数据结构,买了一本严蔚民老师的书。在其中的28页中的: typedef struct LNode{
ElemType data;
struct Lnode *next;
}LNode, *LinkList;
我知道这个是类型重命名,但后面*LinkList又是什么意思呢?
谢谢,我懂了。
typedef就是给一个类型起个别名,如提到的结构体struct LNode,如果不typedef,那用该类结构体时,就要写struct LNode,也就是说struct LNode是类型名,就好像int、char样;写了typedef之后,用的时候直接写LNode就可以了,LNode就是类型名。
LNode表示结构体struct LNode类型,它本身不是变量,而是结构体变量类型,用它可以定义一结构体类型的变量,如LNode x;。同理,*LinkList是指针类型,这个指针类型可以定义指向LNode类型数据的指针变量,如LinkList p;(等同于LNode *p)。

typedef 为重定义 类型

相当於:
struct LNode{
ElemType data;
struct Lnode *next;
};

typedef struct LNode LNode;
typedef struct LNode *LinkList;

此后, LinkList 就是一个新的数据类型
相当於LNode*
LinkList是指向struct node{}的指针类型
LNode *p与LinkList p作用是一样的,即 LNode * 可用 LinkList 代替

typedef 为重定义 类型

相当於:
struct LNode{
ElemType data;
struct Lnode *next;
};

typedef struct LNode LNode;
typedef struct LNode *LinkList;

此后, LinkList 就是一个新的数据类型
相当於LNode*

LinkList是指向struct node{}的指针类型
LNode *p与LinkList p作用是一样的,即 LNode * 可用 LinkList 代替

*LinkList,表示执行LNode结构体的指针类型。类似于

int* 的定义