簡體   English   中英

通過 1 遍歷鏈表

[英]Traversing a linked list by 1

每次我們為堆中的鏈表分配內存時,我們都會得到一個地址,這個地址鏈接到鏈表的下一個變量,head 是一個指向鏈表初學者節點的指針。

如果我們做head = head + 1比它指向下一個鏈表或它指向堆的隨機內存或它指向堆中初學者列表的下一個內存。

它指向您不應該訪問的第一個元素之后的內存區域。

我認為您將數組與鏈表的概念混淆了。 如果您使用數組,則head = head + 1將為您提供數組中的下一個元素。 但是在鏈表上,每個成員在內存中都有不同的位置,獲得該位置的唯一方法是取消引用前一個元素的next成員

如果我們做 head = head + 1 比它指向下一個鏈表或它指向堆的隨機內存或它指向堆中初學者列表的下一個內存。

假設head最初指向正確類型的有效對象,在該語句之后, head指向它最初指向的對象的末尾。 這可能會也可能不會使它成為指向下一個節點的指針,這取決於許多因素,其中一些因素不受您的控制,但通常head的新值不是指向下一個節點的指針。

加法運算對head最初指向的對象的重要性一無所知。 對於任何類型的指針,它都是相同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM