为什么这里只要取个地址就可以了?

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:03:46
#include <cstdlib>
#include <iostream>

using namespace std;

void swap(int &v1, int &v2)
{
int temp=v2;
v2=v1;
v1=temp;
}

int main(int argc, char *argv[])

{
int i=10;
int j=20;
swap(i,j);
cout<<i<<" "<<j<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

void swap(int &v1, int &v2)
这个过程是交换地址么?不懂。。

&符号在C语言里面是取地址,在C++里面不是取地址,而是“引用”,就是在传递参数的时候不产生新的副本(形参)。
这段代码实际就是交换2个变量的值,按C语言理解可以写成:
void swap(int *v1, int *v2)
{
int temp=*v2;
*v2=*v1;
*v1=temp;
}

不是交换地址,而是交换对应地址中存储的值。

不是交换地址,传地址,交换的是地址里的数据

void swap(int &v1, int &v2)
这不是取地址,是引用
&用在实参是去地址,用在形参是引用,
关于引用百度下啊