typedef struct { ElemType data; struct LNode *next; } LNode;和第一段代码的区别
时间: 2024-09-21 21:13:17 浏览: 52
顺序表逆置
这两段代码都定义了一个名为`LNode`的结构体,它包含两个成员变量:`data`,类型为`ElemType`;以及`next`,指向另一个`LNode`的指针。然而,它们在语法上有所不同:
第一段代码:
```c
typedef struct {
ElemType data;
struct LNode *next;
} LNode, *LinkList;
```
在这段代码中,不仅定义了`LNode`结构体,还定义了一个新的类型别名`LinkList`,它实际上是指向`LNode`结构体的指针。这意味着你可以用`LinkList`这个名字创建和操作`LNode`类型的指针。
第二段代码:
```c
typedef struct LNode {
ElemType data;
struct LNode *next;
} LNode;
```
这里只定义了`LNode`结构体,并没有定义新的类型别名。如果你想要处理`LNode`的指针,需要明确写出`struct LNode *`或使用已有的`LNode`关键字。
总结来说,第一段代码更全面,不仅定义了结构体,还提供了结构体指针的类型名,方便后续代码引用。而第二段代码仅定义了结构体本身。
阅读全文