C語言中一個結構不能包含指向自己的指針
我似乎不能成功定義一個鏈表,
C語言中一個結構不能包含指向自己的指針
。我試過typedef struct { char*item; NODEPTR next; } *NODEPTR; 但是編譯器報了錯誤信息。難道在C語言中一個結構不能包含指向自己的指針嗎?C 語言中的'結構當然可以包含指向自己的指針; [K&R2, 第6.5 節] 的討論和例子表明了這點。NODEPTR 例子的問題是在聲明next 域的時候typedef 還沒有定義。
為了解決這個問題, 首先賦予這個結構一個標簽(“struct node”),
資料共享平臺
《C語言中一個結構不能包含指向自己的指針》(http://salifelink.com)。然后,聲明“next” 域為“struct node *”, 或者分開typedef 定義和結構定義, 或者兩者都采納。以下是一個修改后的版本:struct node {
char *item;
struct node *next;
};
typedef struct node *NODEPTR;
至少還有三種同樣正確的方法解決這個問題。在用typedef 定義互相引用的兩個結構時也會產生類似的問題, 可以用同樣的方法解決。
【C語言中一個結構不能包含指向自己的指針】相關文章:
4.C++語言習題
5.C語言筆試題
6.C語言編程題
8.C語言練習題