![](/img/trans.png)
[英]What's the difference between these two statements involving pointers arithmetic?
[英]What is the difference between these two pointers
在鏈表中,我遇到了以下結構
struct node
{
int data;
struct node *next;
};
struct node *list;
list
和next
和有什么不一樣?
> 這兩個指針沒有區別,都是引用和存儲對象的地址。 但是 *next 表現為結構的變量,而另一個指針表現為結構的對象。
在顯示的代碼段中,第一個只“存在”一個指針,即list
。
然而:
list
是指向struct node
的指針的實例。 它使用內存。
next
是struct 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.