gpt4 book ai didi

c++ - 为什么迭代链表中的节点不是 C++ 中的赋值?

转载 作者:行者123 更新时间:2023-11-28 02:16:45 26 4
gpt4 key购买 nike

我坐在车里思考我的 LinkedList 项目时,一个关于这段代码的问题出现在我的脑海中。

Node* current = head;
while (current != nullptr) {
// do stuff here
current = current->next; // -> Why does this not permanently affect the linkedlist?
}

我在评论中指定了这一点。为什么设置 current = current->next 不是永久的,但是当我添加到节点的末尾时,结果

最佳答案

你需要看看你实际分配给了什么。

你有一个局部变量current。将其更改为指向不同的节点不会修改节点本身。这就像您有一张纸,上面有不同的房屋地址。更改纸上的地址不会移动房屋。

当你添加一个新节点时,你会查看纸上的地址,去那所房子,然后在房子的墙上敲一扇新门。 current->next = X 敲开了新的门。 current=X 更改您写在纸上的地址,但不会更改房子。

关于c++ - 为什么迭代链表中的节点不是 C++ 中的赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33825202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com