關於指標的認識

2021-07-11 08:04:04 字數 551 閱讀 5035

在寫圖的鄰接矩陣轉化為圖的鄰接表儲存時,碰到了乙個問題,為每個節點建立好vnode之後,每個節點的arcnode無法正確建立。在除錯的過程中,發現程式有新建節點的操作,但是沒有與之前的鍊錶指標關聯,這個問題本質上是線性表的建立問題。

尋找程式的錯誤,發現首先是新建操作的p節點沒有回到起始位置,也就是沒有儲存頭結點,在一次遍歷完成後,給每個vnode節點賦值的是最後的p為null的記憶體。

所以想辦法新建變數儲存頭指標。接下來是新建了head指標和p指標。

head = null

p = head

我天真的以為對p的變數的操作會反映到head指標,但是結果同上面的一樣,head仍然為null。將p變為二級指標仍然如此。

網上正常的做法是將在結尾增加節點看做插入節點。

總結原因如下:

使用一級指標的時候,p的內容是null,p便是在記憶體裡新開了一段記憶體,這樣的操作當然無法放映到head上面。

使用二級指標時,我認為p的改變會導致head的改變並沒有錯,但是我忽略了p的每一次改變都會反映到head上,所以最終的結果仍然是,記憶體都建立了,但是還是找不到頭指標

關於c 指標的重新認識

最近重新溫習了一下c 的指標,發現以前沒有理解的東西好像開始有點懂了 雖然指標這種東西挺煩人的,但是弄懂了總比沒懂要好 首先是指標的宣告 typename ptrname 要指向什麼樣的型別就宣告為什麼樣的型別,比如 int ptr ptr就是乙個指向int資料的指標,相信有的小夥伴對於 運算子兩邊...

指標系列 認識指標

指標在c 學習中一直是難點和重點,由於在專案中指標應用比較靈活,所以指標所引發的問題比較多,最近針對指標進行重點學習。有人說,掌握指標,也就掌握c語言的精髓。c 中當然也有指標,同時還包括繼承 多型等等。沒有記憶體,就沒有指標,在理解指標的開始階段,先重點講解記憶體五區。如上圖所示 一般下理解記憶體...

c 指標的認識

1 如何判斷指標型別?從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各個指標的型別 1 int ptr 指標的型別是int 2 char ptr 指標的型別是char 3 int ptr 指標的型別是int 4 int ...