标签:div 声明 turn style temp color 踩坑 pre next
两个指针指向同一个结构,一个改了结构,另一个也会改掉。
两个指针指向同一个结构,修改了其中一个的指向,并且改了其中的内容,另一个不为所动。
main.cpp
#include <iostream> struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; //c++链表声明 void checkListNode(ListNode* xc) { while (xc != NULL) { printf("%d\n",xc->val); xc = xc->next; } } //查看链表的函数定义和声明放在一块了 int main(int argc, char *argv[]){ ListNode* node1 =new ListNode(1); ListNode* node2 =new ListNode(2); ListNode* node3 =new ListNode(3); node1->next = node2; node2->next = node3; //链表定义:[1,2,3] ListNode* temp1 = node1; ListNode* temp2 = temp1; //下文代码带入就可以 return 0; }
情况1,改一个指针指向的内容,另一个也变了
//这个时候temp1和temp2是指向同一个链表的指针,单修改temp1或者temp2都会引起另一个的改动,就像这样 temp1->next = node3; checkListNode(temp2);//得到[1,3]变了
情况2,指针一但经过重新赋值,指向的就不再是之前的内容了,所以这时候改一个,另一个是不会有变化的。
//但是如果你对指针进行重新赋值,修改了指向,它指向的就不再是同一个链表,单改一个不会造成另一个的改动 temp1 = node3; checkListNode(temp2);//得到[1,2,3],没变
标签:div 声明 turn style temp color 踩坑 pre next
原文地址:https://www.cnblogs.com/0-lingdu/p/12222076.html