我有一个指向链表中节点的指针:
struct node *temp = head.next
如果我将此指针设置为 NULL
,例如:
temp = NULL;
这也会影响我指向的节点吗?即 head.next
现在是 NULL
?
最佳答案
这也会影响我指向的节点吗?即 head.next 现在为 NULL?
没有。
这样想。
head.next
是一个保存值(地址)的变量。当你这样做时
struct node *temp = head.next
现在 temp
也与 head.next
具有相同的值。
稍后当您更改temp
的值时,为什么head.next
所持有的值要更改。
这是当您复制变量的值(在这种情况下发生)与当您使变量引用其他变量并更改其内容时的区别。
如果你想要后者,那么你需要一个指向结构节点的指针
有点像
struct node **temp = &head.next;
现在如果你想改变 head.next
的内容也可以通过 temp
你可以这样做
*temp = NULL;
关于c++ - 将指针设置为 NULL 会影响您指向的原始项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275792/