在 CPP 中交换 2 个号码
Swapping 2 numbers in CPP
这是交换 2 个数字的代码,它工作正常。但是我很好奇swap函数中x1和x2前面的“&”。在我添加那两个之前,我的代码无法工作。那个“&”是做什么的?
#include<iostream>
using namespace std;
void swap(int &x1,int &x2){
int x = x1;
x1 = x2;
x2 = x;
}
int main(){
int n1 , n2;
cin >> n1 >> n2;
swap(n1,n2);
cout<<n1<<" "<<n2;
return 0;
}
在这个函数中:
void swap(int &x1,int &x2)
&
表示它是对传入参数的引用。更改这些变量将更改调用站点的参数。
在这个函数中:
void swap(int x1,int x2)
复制了参数。更改这些变量将不会更改调用站点的参数。
没有函数也是这样。例如
int a = 42;
int &b = a;
b = 5; // now a is also 5
这是交换 2 个数字的代码,它工作正常。但是我很好奇swap函数中x1和x2前面的“&”。在我添加那两个之前,我的代码无法工作。那个“&”是做什么的?
#include<iostream>
using namespace std;
void swap(int &x1,int &x2){
int x = x1;
x1 = x2;
x2 = x;
}
int main(){
int n1 , n2;
cin >> n1 >> n2;
swap(n1,n2);
cout<<n1<<" "<<n2;
return 0;
}
在这个函数中:
void swap(int &x1,int &x2)
&
表示它是对传入参数的引用。更改这些变量将更改调用站点的参数。
在这个函数中:
void swap(int x1,int x2)
复制了参数。更改这些变量将不会更改调用站点的参数。
没有函数也是这样。例如
int a = 42;
int &b = a;
b = 5; // now a is also 5