c++ 看这段代码 swap()函数所要实现的功能?

#include<iostream>
using namespace std;
void swap(int &,int &);
void main(){
int a=17,b=11;
int *p1=&a,*p2=&b;
swap(a,b) //?
cout<<"a="<<a<<",b="<<b<<endl;}
void swap(int &n1,int &n2) {
int temp=n1;
n1=n2;
n2=temp;}

swap()函数实现的功能是什么?参数int &n1是什么意思?swap()函数要实现的功能是交换地址吗?还是交换参数返回地址呢?不大理解swap的含义

POPMUISE
浏览 918回答 4
4回答

繁星coding

swap()实现传给函数的两个参数的交换。参数int &n1是以引用调用的方式传递参数给swap();swap()要实现的功能是交换两个变量,也就是两个参数的值。

大话西游666

是交换实际的值,但传递地址,这是c++中的应用,比如调用swap的方法是:swap(a,b),调用函数void swap(int &n1,int &n2)的时候给a、b起了一个别名n1、n2,像小名一样,都说的同一个人,这样修改n1也就修改了a,修改n2也就是修改了b。

守着一只汪

swap()实现传给函数的两个参数的交换。这里swap()没有返回值,它之所以能实现值的交换,是因为参数是引用类型的。对形参的操作也影响了实际参数的值,所以a,b交换能被保存下来。如果是这样的函数void swap(int n1,int n2)那么只是在调用函数时交换了n1和n2的值,但当调用结束后,a,b的值并没发生改变。这就是有引用和没有用引用的区别

Smart猫小萌

&n1 是取变量n1的地址你可以理解成 swap(int *n1,int *n2)但是在传参的时候要写成swap(&a,&b); 因为函数需要两个int类型的指针变量指针变量保存的是地址信息a,b是你自己定义的int 类型变量 通过&(取地址运算符)取他们的地址这样通过引用传参实现的功能就是交换a和b的值
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Maya