爲什麼在定義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
好的,如果這是真的。謝謝! –