C++引用交换两个变量的值

时间:2022-11-16 23:22:36
#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;
}
为什么运行结果任然是3,5;
i,j的值并未互换?

9 个解决方案

#1


没问题啊,i=5 j=3

#2


vc 5和3

#3


编译不成功,先清理工程,在编译。。

#4


VS2008 没问题的。rebuild下试试

#5


vs2010   也没问题,交换成功

#6


lz用的什么IDE。。。传引用很明显就对了嘛在,咋会不成功呢??

#7


哈哈  !我知道楼主用的是什么编译器了。
他用的是VC++6.0。这是VC++6.0的缺陷和错误。
如果用VC++6.0的话把swap声明在主函数里面是不行的,应该声明在外面。下面请看:

#include <iostream>
using namespace std;
void Swap(int &,int &);//这样声明就OK。楼主自己可以试试哦
int main()
{
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;
}

#8


楼上正解!!

#9


我也试了,在vc++6.0里面不能成功,但在VS2010就可以了。

#1


没问题啊,i=5 j=3

#2


vc 5和3

#3


编译不成功,先清理工程,在编译。。

#4


VS2008 没问题的。rebuild下试试

#5


vs2010   也没问题,交换成功

#6


lz用的什么IDE。。。传引用很明显就对了嘛在,咋会不成功呢??

#7


哈哈  !我知道楼主用的是什么编译器了。
他用的是VC++6.0。这是VC++6.0的缺陷和错误。
如果用VC++6.0的话把swap声明在主函数里面是不行的,应该声明在外面。下面请看:

#include <iostream>
using namespace std;
void Swap(int &,int &);//这样声明就OK。楼主自己可以试试哦
int main()
{
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;
}

#8


楼上正解!!

#9


我也试了,在vc++6.0里面不能成功,但在VS2010就可以了。