【问题标题】:Linked list: struct for creating(?) Node?链表:用于创建(?)节点的结构?
【发布时间】:2020-02-02 13:40:17
【问题描述】:

我在学习 c 中的链表时遇到了 typedef 声明或定义(?):

typedef struct _node{
 int a;
 struct _node* next
} node;

我不知道它是如何工作的,因为上面的 typedef 声明的主体它启动了一个具有自己结构的指针变量(似乎在定义 _node 时使用了 _node)。或者我对它的实际作用的理解有什么问题吗?从描述上看,我可能也对不同的术语感到困惑。

【问题讨论】:

  • 您提供的代码无效。可能是struct _node *next;
  • 毫无疑问这是一个错字。提供的 sn-p 甚至无法编译。
  • 是的,我写错了,我会编辑我的帖子,谢谢

标签: c


【解决方案1】:

此外,类型定义仅在定义结构后有效,在定义时无效(C 仅允许前向定义)。

这就是为什么你不能使用node 而使用struct node_

在代码中,您可以使用node,因为编译器会将其解释为struct node_

【讨论】:

  • 谢谢!我写错了(我的意思是部分 struct* _node = next 所以我编辑了我的帖子。抱歉造成混淆)但是你说 typedef 只在定义了 struct 之后才有效,所以这是否意味着上面的代码可以在没有预定义的 _node 结构的情况下工作? ?
猜你喜欢
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多