【发布时间】:2021-03-09 03:33:27
【问题描述】:
我正在学习 C 编程中指针的概念。我写了一个如下的函数来交换双向链表中的两个相邻节点;
void swapNode(DLListNode *a, DLListNode *b)
{
DLListNode *temp = a;
a->value = b->value;
b->value = temp->value;
}
它不起作用,因为b 的值成功传递到a,但是a 的值没有传递到b。然后我发现如果我这样写代码,它就可以工作。有人可以向我解释一下区别吗?非常感谢。
void swapNode(DLListNode *a, DLListNode *b)
{
DLListNode temp = *a;
a->value = b->value;
b->value = temp.value;
}
【问题讨论】:
标签: pointers linked-list doubly-linked-list