指向结构本身的结构

时间:2018-05-28 12:54:07

标签: c struct typedef

我有以下代码片段:

typedef int T;

typedef struct Node *pNode;

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

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

1 个答案:

答案 0 :(得分:1)

此:

typedef struct Node *pNode;

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

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

我写的是:

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