c - 指向作为结构本身的结构的指针
问题描述
我有以下代码片段:
typedef int T;
typedef struct Node *pNode;
typedef struct Node{
T item;
pNode next;
}Node;
第一个和最后一个typedef
陈述对我来说很清楚,但我似乎不明白第二个。
当它只是指向节点的指针时,为什么将其定义为结构?
为什么它在pNode next;
语句中不被称为指针?
解决方案
这个:
typedef struct Node *pNode;
创建pNode
为类型的别名struct Node *
,即“指向”的指针struct Node
。
我反对用 来“隐藏”指针typedef
,但这很常见。
我会写它:
typedef struct Node {
int item;
struct Node *next;
} Node;