C语言语法问题אּ_אּ?

2025-06-27 00:16:53
推荐回答(2个)
回答1:

在C语言中,任何函数参数都是值传递的,也就是说传入函数中的形参只是外部实参的一份值的拷贝,修改形参的值并不影响实参。要想在函数中实现修改外部变量的值,就要传递指向这个变量的指针作为函数参数,通过指针去修改该变量。如果变量本身就是一个指针,那么传递的就是指向指针的指针,也就是二级指针。函数Search_BST中需要修改实参BiTNode*parent的值,所以需要使用二级指针**parent。parent的类型是BiTNode**,和Search_BST的第三个参数类型相符,所以传递时使用parent而不是*parent(递归调用的对应参数类型肯定相符,原因很容易理解)。&*是一对互逆运算符,它们互相抵消,&*parent就是parent。

回答2:

**parent声明参数parent是二级指针,即指向指针的指针
后面调用函数时的&*parent即parent