我有一个代码:
Node** ptrlow = ReturnLowest(root); ///pointer po pointer pointing lowest
//DeleteNode(ptrlow);
Test(ptrlow);
我认为这段代码的作用并不重要,重要的是,当我意识到函数DeleteNode(Node **& node)没有任何改变ptrlow的值时,我创建了一个名为Test的函数:
void Test(Node** &node)
{
return;
}
这实际上是整个函数,它什么也没做,但它改变了传递给该函数的ptrlow的值。
在进入测试功能之前: link to screen from visual studio 进入后: link to screen from visual studio 在调试器中更进一步,节点更改: link to screen from visual studio
有人可以向我解释这有可能吗?我将非常感激!
答案 0 :(得分:2)
在最后一张图片中,调试器超出了函数的范围,因此传递的参数应该已被丢弃(PATCH http://localhost:3000/api/Feedbacks2 404 (Not Found)
不再存在)。
node
的值与预期的一样。
答案 1 :(得分:0)
我知道它应该保持不变,但是看起来,它真的发生了变化: Compare this screen with the first one
答案 2 :(得分:0)
我尝试了一些代码行,DeleteNode函数,有很多代码。