繁体   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