此函数如何返回多值?
RT
BiThrNode *InThreading(BiThrNode *BiTree, BiThrNode *pre)
这个函数的返回值是BiTree 我希望能在函数执行过程中pre的值也随之改变
当然不推荐用全局变量 通过引用能改变第二个参数的值吗?如何 谢谢
[解决办法]
#include <iostream>
using namespace std;
void change(int* in,int *out)
{
*out = *in;
}
int main()
{
int a=1,b=2;
change(&a,&b);
cout < <a < < "\t " < <b < <endl;
cin.get();
return 0;
}
[解决办法]
pre可以使用指针的引用形势
可以用std::pair返回两个值
[解决办法]
BiThrNode *InThreading(BiThrNode *BiTree, BiThrNode * & pre)
这样子,再实验下。
[解决办法]
我觉得这两句是将Pre当成二级指针来用了.
if(!(*pre-> rchild))
{
*pre-> RTag = Thread;
*pre-> rchild = BiTree;
}
所以要么在声明时写void InThreading(BiThrNode *BiTree, BiThrNode **pre)
要么将其改为:
if(!(*pre-> rchild))
{
pre-> RTag = Thread;
pre-> rchild = BiTree;
}
[解决办法]
这个问题可以用两种方法来解决。
一个是二级指针,一个是引用。
二级指针方法:
BiThrNode* InThreading(BiThrNode* BiTree, BiThrNode** pre)
这样在调用InThreading函数时应传入一个BiThrNode**类型的参数。
在InThreading函数体里使用的时候应该使用*pre。
引用方法:
BiThrNode* InThreading(BiThrNode* BiTree, BiThrNode* & pre)
这样在调用InThreading函数时直接传一个BiThrNode*的参数。
在InThreading函数体里使用时直接pre。(注意引用不能为空)