首页 > 解决方案 > 指向作为结构本身的结构的指针

问题描述

我有以下代码片段:

typedef int T;

typedef struct Node *pNode;

typedef struct Node{
    T item;
    pNode next;
}Node;

第一个和最后一个typedef陈述对我来说很清楚,但我似乎不明白第二个。
当它只是指向节点的指针时,为什么将其定义为结构?
为什么它在pNode next;语句中不被称为指针?

标签: cstructtypedef

解决方案


这个:

typedef struct Node *pNode;

创建pNode为类型的别名struct Node *,即“指向”的指针struct Node

我反对用 来“隐藏”指针typedef,但这很常见。

我会写它:

typedef struct Node {
  int item;
  struct Node *next;
} Node;

推荐阅读