为了账号安全,请及时绑定邮箱和手机立即绑定

C++引用,得出结果不对,求解释?

/ 猿问

C++引用,得出结果不对,求解释?

慕虎7371278 2019-02-12 14:10:59

C++引用,得出结果不对,求解释


查看完整描述

3 回答

?
MM们

函数声明main函数外面就可以正确执行了

我不明白了,为什么放main函数里面就会导致main函数里的swap函数不执行........,你可以在swap函数里加上这一句cout<<1<<endl;,就会发现swap声明放main函数里后,swap(i,j);神奇的没执行


好吧,看了CSDN论坛上的说法:把swap声明放到main函数里,和std::swap冲突了,如果你非要这样放,可以把using namespace std;这一句改成using std::cout;using std::endl;只使用命名空间std的cout和endl;这样就会执行你定义了swap了

这就可以解释了,你的程序里swap(i,j);不是没有执行,而是执行了std::swap


好像只有VC++才会是这种情况

VS就是无论声明在外面还是里面,都可以正确执行


http://bbs.csdn.net/topics/390317136


真是帮人帮己,一起学习了

还有个更简单的方法,你把函数名改了,改成swap1就行

这样避免对std::swap函数的重载,就可以了



查看完整回答
反对 回复 2019-03-22
?
拉丁的传说
12345678910111213141516int main(){ void swap(int &,int &); int i=3,j=5; swap(i,j); cout<<i<<" "<<j<<endl; system("pause"); return 0;}void swap(int &a,int &b){ int temp; temp=a; a=b; b=temp;}

多半是编译器的问题。



查看完整回答
反对 回复 2019-03-22
?
慕桂英4014372

我只可以说:

在我的机器上运行是对的,照你的一字一句抄上,输出就是 5 3


查看完整回答
反对 回复 2019-03-22

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信