簡體   English   中英

將* next列表指針設置為NULL

[英]Setting a *next list pointer to NULL

我有一個包含幾個節點的列表。 我試圖通過聲明它的current->next值為NULL來標記最后一個節點。

因此,假設我的current指向最后一個節點。 以下兩個代碼段的工作方式是否不同?如果是,則如何?

 current->next = NULL;

 current = current->next;
 current = NULL;

我已經嘗試了一段時間,但是我真的不明白那里發生了什么。 我會說他們在做相同的事情,因為第二個問題首先將我的current指向下next位置,然后將其設置為NULL

編輯 :哦,我明白答案在說什么,現在對我來說也很明顯:)。 因此,如果我不使用第一種方法,而是選擇使用current = current->next ,那么有沒有辦法將NULL值放在應該的位置? 如何使用新的current指向舊的next指向的位置?

是的,這些不同,這是您想要的第一個版本。

在第二個中,您只更改了局部變量current的值(為NULL ),而最后一個節點的next指針保持不變(可能應該首先將其初始化為NULL ,但這也許就是您的意思)在做)。

前一個代碼片段將current指向的結構的next字段分配給NULL 第二代碼段使得current在所述指針指向next該結構的字段指向current ,然后設置currentNULL

除非您有其他獲取結構體引用的方法,否則我真的不理解第二個結構體的用處,因為您實際上會通過丟失指向結構體的指針而與結構體脫離聯系。

因此,在前一種情況下:

current -> struct
           next -> NULL

在后一種情況下:

current -> NULL

           struct
           next -> ????

暫無
暫無

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

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