C++中函数调用的值传递问题

值传递是单向的,那它是如何实现返回的呢?例如比较两个值的大小调用函数时,值传递是实现不了,为什么调用求两个数的和的函数又能返回和呢,我是个初学者,一直都搞不懂这个问题,请... 值传递是单向的,那它是如何实现返回的呢?例如比较两个值的大小调用函数时,值传递是实现不了,为什么调用求两个数的和的函数又能返回和呢,我是个初学者,一直都搞不懂这个问题,请大家多多指点。 展开
 我来答
flally
2008-10-03 · TA获得超过208个赞
知道答主
回答量:133
采纳率:0%
帮助的人:115万
展开全部
按值传递是c++默认的参数传递方式,如果swap函数形式只是按值传递的话,那在函数内部处理的只是实参的两个拷贝,即函数执行时会先将两个实参各copy一份,在函数内部的操作都是对这两个拷贝的操作,对实参毫无影响,所以执行完了你会发现还是没交换,而当你把参数类型改为指针型的话,调用时传进去的就是实参的地址,在函数内部直接对实参操作(就通过你传进去的地址寻找到实参),这样执行完就能成功交换,当然也可以换成引用参数,因为引用和被引用参数是一回事。现在你可以想想,为什么sum函数就可以将参数按值传递?原因很简单,因为函数不需要对地址进行操作,或者说不用关心你处理的是实参还是实参的拷贝,因为两者都能实现,你只不过是要获得一个加和而已。建议去看下c++ primer 中相关章节,对这个问题有非常详细的解释
qyjubriskxp
2008-10-03 · TA获得超过892个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:759万
展开全部
四种方式
1、定义全局变量
2、利用函数返回值传递
3、传入变量地址来改变地址指向的内容
4、传入变量的引用,原理同指针类似
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z3w1h4
2008-10-04 · TA获得超过639个赞
知道小有建树答主
回答量:418
采纳率:0%
帮助的人:287万
展开全部
因为函数的值(不管是什么样的值)只有一个
如果要输出大小关系,可以用0,1表示或者其他的表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式