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声明在主函数里面是不行的,应该声明在外面。下面请看:
他用的是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声明在主函数里面是不行的,应该声明在外面。下面请看:
他用的是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就可以了。