Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        6年前关闭。
                                                                                            
                
        
以下是涉及二进制树上某些转换的代码片段。

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。它由fixFivPtr(root-> left)函数以某种方式更改。

我的问题是,如何更改它而不将其传递给函数。

提前致谢。

最佳答案

pre是静态的,因此它在每次调用之间保持其值。 fixPrevPtr()是递归的(自身调用),因此对pre“ sticks”的任何更改。

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

10-13 01:48