C++ 引用传递对象 如何判断是否是NULL

2024-11-29 16:31:09
推荐回答(2个)
回答1:

你的Node &node是Node变量的引用,不需要if(node!=NULL),戚兆这种NULL判断一般用于指针判断。

printInOrder(node.lchild);
这里,你node.lchild应该是一个指针,你的printInOrder要求传值,你需要解引用,即:
printInOrder(*(node.lchild));

若是传入Node *node的话,才需要判断node!=NULL,而传高颂租指针的樱态话,除非你里面要修改指针指向,否则也不需要Node *&node(该用法,可以修改指针指向,相当于Node **node)。

回答2:

void printInOrder(Node& node){
//if(node!=NULL){ //没有清行答必要判断对象是否为空,若主调函数中未初始化node,会报错

printInOrder(node.lchild);
// 不能将参数 1 从“Node *”转换为“Node &” 那这里要怎样写才是正确的传参方式呢?
//Node* 和Node&不是一码事带腊,前一个是指针,后答慧一个是引用,也就是别名

cout << node.data << endl;
printInOrder(node.rchild);
}
}