开发者社区> 问答> 正文

c++参数传递的传值调用的问题

我看书本上还有网上一些博客都说传值方式不会改变实参的值,但是我在调试下面这段代码时得出的结果是“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;
}

展开
收起
a123456678 2016-03-06 09:54:07 2185 0
1 条回答
写回答
取消 提交回答
  • 因为系统函数也有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;
    }

    就可以了

    结论:传值方式不会改变实参的值,这是对的。
    希望采纳我的答案哦,捂脸~~

    2019-07-17 18:54:03
    赞同 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载

相关实验场景

更多