我看书本上还有网上一些博客都说传值方式不会改变实参的值,但是我在调试下面这段代码时得出的结果是“x:20 y:10",这跟书本说的不一样,能解释一下吗?(我用的是dev cpp 5.6.3)
代码:
int main()
{
int x=10,y=20;
swap(x,y);
cout<<"x:"<return 0;
}
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
因为系统函数也有swap,而你的函数写在了主函数的下面,掩盖了这个问题。所以颠倒下
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
int main()
{
int x=10,y=20;
swap(x,y);
cout<<"x:"<<x<<" "<<"y:"<<y;
return 0;
}
就可以了
结论:传值方式不会改变实参的值,这是对的。
希望采纳我的答案哦,捂脸~~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。