注册 登录
编程论坛 C++教室

用引用交换两变量的值,结果是错误的

zhy0401052 发布于 2009-07-29 11:00, 1517 次点击
#include<iostream>
using namespace std;
int main()
{void swap(int &,int &);
int i=3,j=6;
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;
}
哪位兄弟可以帮我看下,哪地方出错了,我用引用交换两个变量的值,可调式之后,还是原实参变量的值,谢谢了
13 回复
#2
fjwddzzc1232009-07-29 11:31
函数名swap() 有冲突  改个函数名就行了  别跟库函数中的函数重名  其他没什么错误
#3
wendellzone2009-07-29 12:04
强,佩服1
#4
zhy04010522009-07-29 16:21
确实佩服,谢谢了!
#5
fdsflood2009-07-31 14:11
以下是引用fjwddzzc123在2009-7-29 11:31的发言:

函数名swap() 有冲突  改个函数名就行了  别跟库函数中的函数重名  其他没什么错误

牛呀!
#6
wuyun85362009-07-31 14:55
可以交换的
#7
wqa0072009-07-31 17:22
回复 6楼 wuyun8536
把函数声明void swap(int &,int &);放到main函数的上面就行了
#8
cj06082009-07-31 17:31
楼上的高手。。为什么放在外面就可以了??
#9
金多虾2009-08-02 08:48
对的!
#10
wqa0072009-08-02 09:43
回复 8楼 cj0608
惭愧!俺还不是高手,菜鸟一个。只是感觉应该放在外面,试了下竟然可以,我也很吃惊。有当高手的潜质哈,嘿嘿!一起加油吧!
#11
newCpp2009-08-17 16:11
我的编译器好像交换了呀,
没有报错
#12
black4232009-08-17 17:07
#includeusing namespace std;void swap(int &,int &);int main(){void swap(int &,int &);int i=3,j=6;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;}
只要在开始的时候申明一下函数swap就可以了,因为你没有申明,所以调用的应该是c++的库函数
#13
mengfp2009-08-17 17:58
同意楼上
#14
cyxiaotian2011-08-29 16:11
作函数声明用了,所以放在了main函数的上面~~
1