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