为什么在定义结构类型时使用 Node(..Node{..),如下所示,会产生编译时错误。
typedef struct node Node;
Node{
int data;
Node *next;
};
有一个非常基本的概念让我感到困惑,请建议或将我引至相关链接。
至少,你需要它说
typedef struct node Node;
struct Node{
int data;
Node *next;
};
Typedef 用于为其他类型提供别名。它不是一个宏,它不会在使用的地方替代某些东西。
正确的定义可能是:
typedef struct node {
int data;
struct node* next;
} Node;
但是,您可以这样做:
typedef struct {
int data;
struct Node *next;
}Node;
现在您可以通过以下方式轻松创建您创建的结构的实例Node
:
Node node, *pNode;
node
类型的新变量的名称在哪里struct Node
。
并且*pNode
是指向相同的指针,由以下方式初始化:
pNode = &node;