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的含义 展开
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的含义 展开
展开全部
swap()实现传给函数的两个参数的交换。
这里swap()没有返回值,它之所以能实现值的交换,是因为参数是引用类型的。对形参的操作也影响了实际参数的值,所以a,b交换能被保存下来。
如果是这样的函数void swap(int n1,int n2)
那么只是在调用函数时交换了n1和n2的值,但当调用结束后,a,b的值并没发生改变。
这就是有引用和没有用引用的区别
这里swap()没有返回值,它之所以能实现值的交换,是因为参数是引用类型的。对形参的操作也影响了实际参数的值,所以a,b交换能被保存下来。
如果是这样的函数void swap(int n1,int n2)
那么只是在调用函数时交换了n1和n2的值,但当调用结束后,a,b的值并没发生改变。
这就是有引用和没有用引用的区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
swap()实现传给函数的两个参数的交换。
参数int &n1是以引用调用的方式传递参数给swap();
swap()要实现的功能是交换两个变量,也就是两个参数的值。
参数int &n1是以引用调用的方式传递参数给swap();
swap()要实现的功能是交换两个变量,也就是两个参数的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&n1 是取变量n1的地址
你可以理解成 swap(int *n1,int *n2)
但是在传参的时候要写成
swap(&a,&b); 因为函数需要两个int类型的指针变量
指针变量保存的是地址信息
a,b是你自己定义的int 类型变量 通过&(取地址运算符)取他们的地址
这样通过引用传参实现的功能就是交换a和b的值
你可以理解成 swap(int *n1,int *n2)
但是在传参的时候要写成
swap(&a,&b); 因为函数需要两个int类型的指针变量
指针变量保存的是地址信息
a,b是你自己定义的int 类型变量 通过&(取地址运算符)取他们的地址
这样通过引用传参实现的功能就是交换a和b的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int &n1引用,又叫别名,交换地址空间!跟指针的效果是一样的!但是比指针灵活!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现的功能是ab互换!int &n1这个是c++里的别名,怕你用指针麻烦,所以给你找了个简化的东西
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询