struct node
{
int v;
node *l,*r;
}*p;
使用二级指针建树的话,如果p是非全局变量且一开始没有指向变量的话递归建树时必然要传递参数,但是如果只是简单的build(node *p){...}
的话是无效的,因为只是在build里面又创建了一个临时指针p而已,函数结束后main里的p并无变化!
防止误解:
但是如果传进去的这个指针本来是指向一个变量的话,build产生的临时变量里保存的地址也是那个变量的地址,更改值时同样有效。
struct node
{
int v;
node *l,*r;
}*p;
使用二级指针建树的话,如果p是非全局变量且一开始没有指向变量的话递归建树时必然要传递参数,但是如果只是简单的build(node *p){...}
的话是无效的,因为只是在build里面又创建了一个临时指针p而已,函数结束后main里的p并无变化!
防止误解:
但是如果传进去的这个指针本来是指向一个变量的话,build产生的临时变量里保存的地址也是那个变量的地址,更改值时同样有效。