问答详情
源自:5-2 Linux C 动态数据结构-动态链表

我觉得循环中的p2->next应该等于p1->next 为什么会是p2->next=p1有哪位大神看懂了能帮我解释一下吗?

我觉得循环中的p2->next应该等于p1->next 为什么会是p2->next=p1有哪位大神看懂了能帮我解释一下吗?

提问者:果爱上了然 2016-08-15 23:42

个回答

  • spiritwyc
    2016-08-16 10:44:37
    已采纳

    p2->next的含义是“指针”,指针指向下一个对象的地址,所以p2->next指向下一个对象p1,这是正确的,对象里保存的属性才是代码需要用到的,而指针只不过指向下一个取属性的对象,仅仅是指路功能;

    p2->next=p1->next,就变成指针指向指针,这样根据p2的指针取到的东西,并不是p1对象,而变成p1的下一个结点的指针,那就等于跳过了p1了,逻辑就不对了,所以p2的指针初衷就是要指向p1这个对象的。

  • 慕瓜8627956
    2016-08-16 10:54:43

    p2相当于是尾指针,始终指向链表最后一个结点,p2->next=p1就是把新创建的结点和链表的尾结点连接起来,而你说的p1->next此时是NULL,如果p2->next = p1->next,那么p2->next 就等于空了。