在 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