C 中是否有类似于 C# 的 out/out 关键字的东西?

Is there something in C that is analogous to out/out keyword of C#?

void extract_left_subtree(node *right_child)
{
    while(right_child->right)
    {
        right_child = right_child->right;
    }  
    printf("rightmost inside the funtion is %d\n",right_child->data);
}

在此函数中,最后一行打印了正确的值。

 node *right_child=root;
 extract_left_subtree(right_child);
 printf("rightmost child is %d\n",right_child->data);

但是我得到了一些垃圾值。

我知道问题出在哪里,我知道为什么会这样,唯一不知道的是如何解决这个问题? C#中有ref、out等关键字可以实现同样的功能,但问题是,我们如何在C语言中实现同样的功能呢?

我不想return方法中的值

I don't want to return values from the method please

如果您不想return一个值,您可以这样做:

void extract_left_subtree(node **right_child)
{
    while((*right_child)->right)
    {
        (*right_child) = (*right_child)->right;
    }  
    printf("rightmost inside the funtion is %d\n", (*right_child)->data);
}

并这样称呼它:

extract_left_subtree(&right_child);

这会将right_child的地址传递给函数,然后函数可以直接更新right_child

的值