一般来说,
如果一个函数需要返回多个参数,可以采用以下两种方法:
第一种方法是将返回值作为写参数。
第二种方法是定义一个结构,返回指向该结构的指针。
下面的一个例子是指针使用的一个例子。
change1 是值传递,不能作为返回值使用。
int change1(char* name){
name=”alter”;
return 1;
}
int change2(char* &name){
name=”alter”;
return 1;
}
int main(){
char* string=”original!”;
change1(string);
cout<<string<<’\n’;
change2(string);
cout<<string<<’\n’;
}
结果:original!;alter。change1是值传递,形参name有自己独立的内存地址,内容是拷贝string的内容(string的内容是”original”的地址),修改后name的内容变成了“alter”的地址。change2是引用传递,形参name的地址就是string的地址,或者说name就是string
总结:因此想要多值返回的时,而且想利用指针做到,你就要考虑引用传递。一定不要忘记了&。