在struct中使用struct关键字

Dee*_*ven 1 c struct

typedef struct node
{
    int n;
    struct node* next;
}
node;
Run Code Online (Sandbox Code Playgroud)

在上面的代码struct node* next里面有struct node.我不明白它的含义.

Che*_*bim 5

在代码struct node* next里面有struct node.我不明白它的含义.

说明:

节点是用于指一个通用术语自参照结构.(点击链接了解更多)

按照定义,

自参照结构是一个典型的结构,其定义具有一个或多个其作为指针到它自己的类型成员的.

在你的代码next中,struct node这是一个结构的成员,它是一个指向它自己类型的指针,因此你在结构内部以这种方式将它看作指向它自身的指针:

struct node* next;

这就是struct关键字在struct中使用的原因


使用自引用结构的目的:

自引用结构非常有助于构建数据结构,例如链表 ......事实上,变量next是在链表中的节点之间建立链接时非常有用的成员 :)