例题:实现两个变量的值互换,用“引用”作形参。

#include<iostream>usingnamespacestd;intmain(){voidswap(int&,int&);inti=3,j=5;swap(i,j... #include<iostream>
using namespace std;
int main()
{
void swap(int &,int &);
int i=3,j=5;
swap(i,j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int &a, int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
为什么我互换不了,是不是我的编译系统的问题,还是其它原因???帮帮忙
c
展开
 我来答
枚悠亦e
2012-06-19
知道答主
回答量:19
采纳率:0%
帮助的人:5.2万
展开全部
对数据进行交换操作时,采用的是按值传递,你在用引用,其实就已经冲突了,进行交换的时候,就已经传递的不是值了,你用指针试试。
追问
我知道,但是课程要求用引用作形参,这个是例题来的,不是习题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyx1196
2012-06-19
知道答主
回答量:1
采纳率:0%
帮助的人:1619
展开全部
#include<iostream>
using namespace std;
int main()
{
void swap(int *a,int *b);
int i=3,j=5;
swap(&i,&j);
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int *a, int *b)
{
int temp;
temp=a;
a=b;
b=temp;
}
用指针互换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lone_1943
2012-06-19
知道答主
回答量:14
采纳率:0%
帮助的人:7万
展开全部
void swap(int &,int &);
这是函数声明吗?为什么不写到外面
更多追问追答
追问
是啊
追答
void swap(int &,int &);在内部声明,他的作用域只是在main函数内部,而你的函数定义是在外部,你可以自己下断点调试下,根本就没有执行swap函数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tseug8271
2012-06-19 · TA获得超过1498个赞
知道小有建树答主
回答量:745
采纳率:100%
帮助的人:368万
展开全部
代码没问题,把你编译过程 和运行结果 截屏 发上来再分析吧
更多追问追答
追问
你看一看
追答
我用你的代码在 TC++3.0 和 VS2005 下运行都没问题,很奇怪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式