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

#include<iostream>usingnamespacestd;voidswap(int&,int&);voidmain(){inta=17,b=11;int*p... #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的含义
展开
 我来答
御风__弄影
2009-03-10 · TA获得超过659个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:256万
展开全部
swap()实现传给函数的两个参数的交换。
这里swap()没有返回值,它之所以能实现值的交换,是因为参数是引用类型的。对形参的操作也影响了实际参数的值,所以a,b交换能被保存下来。
如果是这样的函数void swap(int n1,int n2)
那么只是在调用函数时交换了n1和n2的值,但当调用结束后,a,b的值并没发生改变。
这就是有引用和没有用引用的区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵_火
2009-03-10 · TA获得超过178个赞
知道答主
回答量:121
采纳率:0%
帮助的人:104万
展开全部
swap()实现传给函数的两个参数的交换。
参数int &n1是以引用调用的方式传递参数给swap();
swap()要实现的功能是交换两个变量,也就是两个参数的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fangyygw
2009-03-10 · 超过23用户采纳过TA的回答
知道答主
回答量:127
采纳率:0%
帮助的人:68.4万
展开全部
&n1 是取变量n1的地址
你可以理解成 swap(int *n1,int *n2)
但是在传参的时候要写成
swap(&a,&b); 因为函数需要两个int类型的指针变量
指针变量保存的是地址信息
a,b是你自己定义的int 类型变量 通过&(取地址运算符)取他们的地址
这样通过引用传参实现的功能就是交换a和b的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhdf189
2009-03-10 · TA获得超过252个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:0
展开全部
int &n1引用,又叫别名,交换地址空间!跟指针的效果是一样的!但是比指针灵活!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shaocl112102
2009-03-10 · TA获得超过342个赞
知道答主
回答量:496
采纳率:0%
帮助的人:0
展开全部
实现的功能是ab互换!int &n1这个是c++里的别名,怕你用指针麻烦,所以给你找了个简化的东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式