在链接列表中,我遇到以下结构
struct node
{
int data;
struct node *next;
};
struct node *list;
list
和next
有什么区别?
>这两个指针之间没有区别,都是指针并存储对象的地址。但是* next充当结构的变量,另一个指针充当Struct的对象。
这里显示的所有片段中的第1个仅“存在” one指针,即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;
也就是说,它的行为就像需要一个对象一样,与该结构的任何其他成员一样。
您可以参考此code
两个指针列表和下一个都指向节点结构。
主要区别是:
list不是结构节点的一部分,其中next是结构节点的一部分。