在struct中使用struct关键字

时间:2016-06-15 18:48:58

标签: c struct

typedef struct node
{
    int n;
    struct node* next;
}
node;

在上面的代码中,struct node* next中有struct node。我不明白它的含义。

3 个答案:

答案 0 :(得分:5)

  

在代码中struct node* next内有struct node。一世   不明白它的含义。

说明:

节点是用于引用self referential structure的一般术语。(点击链接了解详情)

按定义进行,

  

自引用结构是一个典型的结构,其定义有一个或   更多的成员作为指向自己类型的指针。

这里的代码next是结构struct node的成员,它是指向它自己类型的指针,因此你将它看作是一个指向它自己的指针。 struct:

struct node* next;

这就是为什么 struct关键字在struct中使用

的原因

目的使用自引用结构

自引用结构非常有助于构建数据结构,例如linked lists ...实际上变量next是有用的成员链接列表 :)

节点之间的链接

答案 1 :(得分:0)

struct node*(注意*)是指针*)到struct node。这意味着一个节点可以通过指针连接到另一个节点,而不包括另一个节点。

这被称为“链表”结构。我找到了一个Stanford University tutorial,它看起来非常彻底地涵盖了这个主题。

答案 2 :(得分:0)

简单来说,它意味着next也可以与node的结构相同。所以接下来还会有一个字段int n和另一个next ..这也是动态的,所以你不必事先分配任何内存..你可以继续添加任意数量的节点(你仍然需要分配内存)到每个节点 - 搜索如何使用malloc为struct节点分配内存 因为它是指针类型(struct node * next),这意味着您可以将下一个节点的地址存储到它并链接节点。 请参阅链表实现以便更好地理解.. 我希望它有所帮助:)