0

为什么在定义结构类型时使用 Node(..Node{..),如下所示,会产生编译时错误。

typedef struct node Node;

Node{
  int data;
  Node *next;
};

有一个非常基本的概念让我感到困惑,请建议或将我引至相关链接。

4

3 回答 3

1

至少,你需要它说

typedef struct node Node;

struct Node{
  int data;
  Node *next;
};
于 2013-11-03T22:05:45.990 回答
1

Typedef 用于为其他类型提供别名。它不是一个宏,它不会在使用的地方替代某些东西。

正确的定义可能是:

typedef struct node {
  int data;
  struct node* next;
} Node;
于 2013-11-03T21:53:13.157 回答
0

但是,您可以这样做:

typedef struct {
  int data;
  struct Node *next;
}Node;  

现在您可以通过以下方式轻松创建您创建的结构的实例Node

Node node, *pNode;  

node类型的新变量的名称在哪里struct Node
并且*pNode是指向相同的指针,由以下方式初始化:

  pNode = &node;
于 2013-11-03T22:45:41.273 回答