为什么在定义struct类型时使用Node(.. Node {..),如下所示,给出了编译时错误。typedef struct用于定义
typedef struct node Node;
Node{
int data;
Node *next;
};
有一个非常基本的概念让我感到困惑,请告诉我或给我介绍一个相关的链接。
为什么在定义struct类型时使用Node(.. Node {..),如下所示,给出了编译时错误。typedef struct用于定义
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;
能否请你修改你的第一句,以明确你希望它做的,或者是什么呢? – glglgl
这是无效的,因为它无效。结构类型的定义必须以关键字'struct'开头。这里的所有都是它的。 – AnT
好的,如果这是真的。谢谢! –