gpt4 book ai didi

c - 指针更改值而不作为参数传递

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

以下是涉及二叉树上的一些转换的代码中的代码片段。

void fixPrevPtr(struct node *root)
{
static struct node *pre = NULL;

if (root != NULL)
{
fixPrevPtr(root->left);
root->left = pre;
pre = root;
fixPrevPtr(root->right);
}
}

这里'pre'在每个函数中都被初始化为NULL。但是当函数进入'if'子句并执行root->left=pre时,分配的pre不为NULL。它以某种方式被函数 fixPrevPtr(root->left) 改变。

我的问题是它如何在不传递到函数的情况下进行更改。

提前致谢。

最佳答案

该位不正确

Here 'pre' is initialized in every function as NULL.

由于 static 关键字,它只初始化一次。如果函数更改了值,则下次函数将使用该值而不是 null。

关于c - 指针更改值而不作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160845/

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