我有以下代码片段:
typedef int T;
typedef struct Node *pNode;
typedef struct Node{
T item;
pNode next;
}Node;
第一个和最后一个typedef
声明对我来说非常清楚,但我似乎并不理解第二个。
当它只是指向节点的指针时,为什么它被定义为结构?
为什么在pNode next;
语句中它不被称为指针?
答案 0 :(得分:1)
此:
typedef struct Node *pNode;
创建pNode
作为struct Node *
类型的别名,即“指向struct Node
的指针”。
我反对用typedef
“隐藏”指针,但这很常见。
我写的是:
typedef struct Node {
int item;
struct Node *next;
} Node;