C++ 在CPP中交换2个数字

C++ 在CPP中交换2个数字,c++,swap,C++,Swap,这是交换2个数字的代码,它工作正常。但我对交换函数中x1和x2前面的“&”感到好奇。在我添加这两个之前,我的代码无法工作。那个“&”有什么作用 #包括 使用名称空间std; 无效交换(int&x1、int&x2){ int x=x1; x1=x2; x2=x; } int main(){ int n1,n2; cin>>n1>>n2; 交换(n1,n2); cout在该函数中: void swap(int &x1,int &x2) void swap(int x1,int x2

这是交换2个数字的代码,它工作正常。但我对交换函数中x1和x2前面的“&”感到好奇。在我添加这两个之前,我的代码无法工作。那个“&”有什么作用

#包括
使用名称空间std;
无效交换(int&x1、int&x2){
int x=x1;
x1=x2;
x2=x;
}
int main(){
int n1,n2;
cin>>n1>>n2;
交换(n1,n2);
cout在该函数中:

void swap(int &x1,int &x2)
void swap(int x1,int x2)
&
表示它是对传入参数的引用。更改这些变量将更改调用站点上的参数

在该功能中:

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
在该功能中:

void swap(int &x1,int &x2)
void swap(int x1,int x2)
&
表示它是对传入参数的引用。更改这些变量将更改调用站点上的参数

在该功能中:

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
这是一个,这是一个