引用传参(pass by reference)废话不多说,直接上代码。
#include <iostream>
using namespace std;
//交换两个数
void swap(int a, int b){
int t = a;
a = b;
b = t;
}
//主函数
int main(){
int x = 5; y = 10;
swap(x, y);
cout << x << " " << y;
return 0;
}
输出结果:
5 10
可以看到,main函数中的swap并没有起到交换两个数的作用。原因在于:
定义swap函数的时候,用的是按值传递(pass by value),也就是说,在main函数里调用的swap函数相当于
swap(5, 10);
与x,y本身没有半毛钱关系。
解决方法:定义swap函数的时候使用pass by reference。
void swap(int &a, int &b){
int t = a;
a = b;
b = t;
}
然后调用main函数,可以发现输出变成了
10 5
实现了x与y值的交换。