指向自我的C结构

时间:2009-11-28 22:39:41

标签: c struct

是否可以使用指向该类型结构的指针定义结构?我的意思是:

typedef struct {
    char* name;
    node* parent;
} node;

就我的尝试或阅读而言,我不知道该怎么做或者甚至可能。

5 个答案:

答案 0 :(得分:21)

是的,但您必须为结构命名,以便您可以参考它。

typedef struct node_ {
    char* name;
    struct node_ * parent;
} node;

名称node仅在完全定义结构后才会声明。

答案 1 :(得分:17)

您可以在incomplete type

中使用typedef
typedef struct node node;

struct node {
  char *name;
  node *parent;
};

答案 2 :(得分:1)

我同意......和树木。你不必像“鸡蛋和鸡蛋”那样看它,因为在实例化之前总是会定义一个类型。因此,当你开始将两者混合在脑中时,拥有相同类型对象的成员变量是非常棘手的!

答案 3 :(得分:0)

是的,这是可能的。

这是链接列表的制作方式!

答案 4 :(得分:-2)

你为什么不尝试一下?你必须为结构命名,是的,这是递归数据结构的工作方式。