l-z-h 发表于 2023-9-21 21:26:26

单链表的基本操作

这里最后的LNode是在创建变量吗,还是说把LNode重定义为了LNode?以及下面的typedef struct LNode *LinkList意思是重定义LinkList为struct LNode *类型吗还是说*LinkList重定义为struct LNode类型?求详细解答。

isdkz 发表于 2023-9-21 21:26:33

LNode是一个结构体类型,它在这里是被用来定义单链表的每个节点。在这段代码中,LNode是在创建变量,它用于定义一个名为L的指向结构体LNode的指针。

而下面的typedef struct LNode *LinkList是将struct LNode *类型重定义为LinkList类型。这意味着我们可以使用LinkList作为定义指向LNode结构体指针的类型。这样做的好处是可以简化代码,使其更易读和理解。同时,使用LinkList作为类型名也可以隐藏底层的实现细节,提高代码的可维护性。

l-z-h 发表于 2023-9-21 21:29:06

isdkz 发表于 2023-9-21 21:26
LNode是一个结构体类型,它在这里是被用来定义单链表的每个节点。在这段代码中,LNode是在创建变量,它用于 ...

是指大括号后面的LNode在用来创建变量吗?在这里创建一个变量有什么作用呢

额外减小 发表于 2023-9-22 23:26:02

这里最后的LNode是在创建变量吗,还是说把LNode重定义为了LNode?以及下面的typedef struct LNode *LinkList意思是重定义LinkList为struct LNode *类型吗还是说*LinkList重定义为struct LNode类型?求详细解答。

Question 1. 这里的LNode只不过是一个声明,就是声明了一个模板。注意前面的 typedef 关键字,这个表明是给 struct LNode 声明一个别名叫 LNode.
如果你把前面的 typedef 去掉,那这个语法确实是在声明一个全局变量(但会报错,名称重复)

Question 2. typedef struct LNode * LinkList 指的是把 struct LNode * 类型,也就是指向 struct LNode 变量的指针,取了一个别名叫 LinkList.
页: [1]
查看完整版本: 单链表的基本操作