看到这个结构
typedef struct Node{
void *data;
int pos;
struct Node *prev;
struct Node *next;
}*lptr;
我想知道为什么Node
的typedef是*lptr
而不是lptr
。
指针有什么不同?
答案 0 :(得分:3)
虽然通常有两个typedef
s - 一个用于struct
以避免标记,一个用于struct
指针以避免使用星号,如此
typedef struct Node{
void *data;
int pos;
struct Node *prev;
struct Node *next;
} Node;
typedef Node* lptr;
如果作者想避免在lptr
或Node
之后写一个星号,他们当然可以typedef
指向struct Node
。
答案 1 :(得分:2)
typedef用于指针类型。
lptr
是struct Node*
答案 2 :(得分:1)
因为定义(typedef)是指针类型。删除它会使lptr类型为Node,*使它成为节点的指针。