3 回答

TA貢獻883條經驗 獲得超454個贊
所以你應該已經弄懂了 struct 的定義和 typedef 是怎么回事吧。
那么,在 main 中你定義了 a、b、c 這三個 NODE,并且讓 a 鏈到 b,b 鏈到 c,c 的 next 指向“空”
雖然運行起來沒有錯,但額外說一下:c.next='\0' 這里你把 next 賦值為 '\0',這是“空字符”。而這里在邏輯上你需要的是讓 next 為“空指針”(也就是讓 next 的值為 0),那么直接賦值 0 或 NULL 就可以了。 因為 '\0' 的值也是 0,所以這里沒有運行錯誤,但這么寫邏輯上就有些混亂了。
h 和 p 是指針,h 指向 a,而 p 一開始也指向 a。
while 循環的條件是 p 不為空指針。那么一開始 p 指向 a,所以進入循環:
首先打印 p 指向的節點的 data 值。
然后 p = p -> next,這句就是讓 p 指向下一個節點。
如果某次循環時 p 已經指向最后一個節點了(這例子中就是 c),那么 p = p -> next 之后 p 就是空指針了(因為 c 的 next 是空指針,表明 c 為最后一個節點),再進入 while 時 p 為空指針,所以會結束循環。
那么整個 while 就是利用 p 指針,遍歷了一遍 a b c 節點鏈接而成的鏈表(對,這樣的結構就叫“鏈表”)

TA貢獻5條經驗 獲得超1個贊
嗯嗯typedef struct? 我都理解了,只是這個循環我還是有點迷糊,為什么p的值會移動,會發生變化,還有–>這個符號的用法,具體作用什么?
- 3 回答
- 0 關注
- 1583 瀏覽
添加回答
舉報