c – 为什么下面的转轮指针不会变为null?

为什么转轮指针没有变为null?

Node* runner = head->next;
Node* reversedList = head;
reversedList->next = nullptr;

但在下面,它确实变为null

Node* reversedList = head;
reversedList->next = nullptr;
Node* runner = head->next;

最佳答案 发出以下语句后

Node* runner = head->next;

‘runner’指向’next’指向的内存(假设它是地址0x6543).

(head-> next)——>内容< —-(亚军) 以下两行:

Node* reversedList = head;

reversedList->next = nullptr;

因此,’next’现在指向NULL,但’runner’仍然指向先前由’next’指向的地址,即0x6543.

(head-> next) – > NULL |内容< ——–(亚军) 第二个例子是有效的,因为首先你将head->下一个指向NULL,然后让’runner’指向head-> next,现在为NULL.由于’head’和’reversedList’都指向相同的地址,第二个例子 – 没有reverseList – 将是:

head->next = nullptr; 

Node* runner = head->next;
点赞