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