![](/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.