- 相關(guān)推薦
C語言中一個(gè)結(jié)構(gòu)不能包含指向自己的指針
我似乎不能成功定義一個(gè)鏈表,
C語言中一個(gè)結(jié)構(gòu)不能包含指向自己的指針
。我試過typedef struct { char*item; NODEPTR next; } *NODEPTR; 但是編譯器報(bào)了錯(cuò)誤信息。難道在C語言中一個(gè)結(jié)構(gòu)不能包含指向自己的指針嗎?C 語言中的結(jié)構(gòu)當(dāng)然可以包含指向自己的指針; [K&R2, 第6.5 節(jié)] 的討論和例子表明了這點(diǎn)。NODEPTR 例子的問題是在聲明next 域的時(shí)候typedef 還沒有定義。
為了解決這個(gè)問題, 首先賦予這個(gè)結(jié)構(gòu)一個(gè)標(biāo)簽(“struct node”),
資料共享平臺(tái)
《C語言中一個(gè)結(jié)構(gòu)不能包含指向自己的指針》(http://m.msguai.com)。然后,聲明“next” 域?yàn)?ldquo;struct node *”, 或者分開typedef 定義和結(jié)構(gòu)定義, 或者兩者都采納。以下是一個(gè)修改后的版本:struct node {
char *item;
struct node *next;
};
typedef struct node *NODEPTR;
至少還有三種同樣正確的方法解決這個(gè)問題。在用typedef 定義互相引用的兩個(gè)結(jié)構(gòu)時(shí)也會(huì)產(chǎn)生類似的問題, 可以用同樣的方法解決。
【C語言中一個(gè)結(jié)構(gòu)不能包含指向自己的指針】相關(guān)文章:
個(gè)人職業(yè)規(guī)劃包含6個(gè)部分11-03
男人不能有的5個(gè)起床習(xí)慣09-15
c語言課程設(shè)計(jì)的心得體會(huì)(精選19篇)07-14
C/C++筆試題目大全08-22
面試自我介紹包含內(nèi)容08-28
職場中千萬不能犯的三個(gè)大忌06-27
包含12生肖的歇后語10-29
作文遇見另一個(gè)自己09-28