我有一个包含几个节点的列表。我试图通过将current->next
值声明为NULL
来标记最终节点。
所以,让我们说我的current
指向最后一个节点。以下两个代码段是否以不同的方式工作,如果是,如何?
current->next = NULL;
和
current = current->next;
current = NULL;
我现在已经尝试了一段时间,但我无法真正理解那里发生了什么。我会说他们正在做同样的事情,因为第二个人首先将我的current
指向next
点,然后将其设置为NULL
。
编辑:哦,我理解答案的内容,现在看来我也很明显:)。所以,如果我不使用第一种方式,但选择去current = current->next
是否有办法让我把NULL值放在我应该的位置?如何使用我的新current
指出我的旧next
指向的位置?
答案 0 :(得分:2)
是的,这些是不同的,它是您想要的第一个版本。
在第二个中,您只需要更改局部变量current
的值(到NULL
),而最终节点的next
指针保持不变(它可能应该首先初始化为NULL
,但也许这就是你正在做的事情。
答案 1 :(得分:2)
前一个代码段将next
指向的结构的current
字段分配给NULL
。第二个代码段将current
指针指向next
指向的结构的current
字段,然后将current
设置为NULL
。
除非你有其他方法来获取对结构的引用,否则我并不真正理解第二种方法的用处,因为你实际上是通过丢失指向它的指针而将自己从结构中删除。
所以在前一种情况下:
current -> struct
next -> NULL
在后一种情况下:
current -> NULL
struct
next -> ????