p=p->next表示修改指針p的位置,把p指向原來的下一個(gè)節(jié)點(diǎn)。->叫做結(jié)構(gòu)體指針運(yùn)算符,用來訪問結(jié)構(gòu)體內(nèi)部成員。=號(hào)表示把右邊的值賦給左邊。
p=p->next含義是什么
p=p->next是表示修改指針p的位置,把p指向原來的下一個(gè)節(jié)點(diǎn)。
1、->是一個(gè)整體,它是用于指向結(jié)構(gòu)體、C++中的class等含有子數(shù)據(jù)的指針用來取子數(shù)據(jù)。換種說法,如果我們?cè)贑語(yǔ)言中定義了一個(gè)結(jié)構(gòu)體,然后申明一個(gè)指針指向這個(gè)結(jié)構(gòu)體,那么我們要用指針取出結(jié)構(gòu)體中的數(shù)據(jù),就要用到“->”。
(資料圖片僅供參考)
2、鏈表指針是C語(yǔ)言的一個(gè)難點(diǎn),但也是重 點(diǎn),學(xué)懂了非常有用。要仔細(xì)講就必須先講變 量、指針。
3、所謂變量,不要淺顯的認(rèn)為會(huì)變得量就是變量。套用我們?cè)洪L(zhǎng)的問話:“教室變不變?”變,因?yàn)槊刻煊胁煌娜嗽诶锩嫔险n,但又不變,因?yàn)榻淌沂冀K在那,沒有變大或變小。
p->next=p;和p=p->next;的區(qū)別
p->next=p表示節(jié)點(diǎn)p的下一個(gè)節(jié)點(diǎn)還是p,如果鏈表只有p節(jié)點(diǎn),那么這樣就變成了一個(gè)循環(huán)鏈表。
p=p->next表示修改指針p的位置,把p指向原來的下一個(gè)節(jié)點(diǎn)。
例如:q->next=p;p->next=null;q=p;
這個(gè)里面的q指向的永遠(yuǎn)是是要在當(dāng)前節(jié)點(diǎn)添加下一個(gè)節(jié)點(diǎn)的那個(gè)節(jié)點(diǎn)
值得一提的是, p->next=p和p=p->next并不是一個(gè)意思,p->next=p表示節(jié)點(diǎn)p的下一個(gè)節(jié)點(diǎn)還是p,如果鏈表只有p節(jié)點(diǎn),那么這樣就變成了一個(gè)循環(huán)鏈表。
寫鏈表時(shí)會(huì)使用到當(dāng)p=p->next,用來尋找下一個(gè)節(jié)點(diǎn)p=p->next時(shí),p原來的地址不會(huì)被覆蓋。