簡體   English   中英

這兩個指針有什么區別

[英]What is the difference between these two pointers

在鏈表中,我遇到了以下結構

struct node
{
    int data;
    struct node *next;
};      
struct node *list;

listnext和有什么不一樣?

> 這兩個指針沒有區別,都是引用和存儲對象的地址。 但是 *next 表現為結構的變量,而另一個指針表現為結構的對象。

在顯示的代碼段中,第一個只“存在”一個指針,即list

然而:

  • list是指向struct node的指針的實例。 它使用內存。

  • nextstruct node類型定義的一部分和指向struct node類型指針的成員。 next不是指針的實例。 它不使用內存。

它們都是指向struct node指針。

但區別在於next是結構體的成員,而list是對象。

這意味着您可以使用list作為

list->data;

但是要使用next ,您需要使用

list->next->data;

或者

struct node a;
a.next->data;

也就是說,它的行為就像需要一個對象一樣,就像結構的任何其他成員一樣。

你可以參考這個代碼

兩個指針列表和下一個都指向節點結構。

主要區別在於:

list不是結構節點的一部分,而next是結構節點的一部分。

暫無
暫無

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

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