BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #37201同步于 2010/3/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

函数调用时的值传递

sichao
2010/3/29镜像同步6 回复
请教一下,既然在用值传递调用函数时,实参的值是不会改变的,那么值传递的意义在哪里呢? 我们应用值传递解决什么问题呢? 请教大牛!
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
renne机器人#1 · 2010/3/29
又不是一定要改实参的值…… 比如你一个sin(x) 传递个x进去你不用改x的值的吧,只要知道结果的吧 怎么会没意义 【 在 sichao (寻梦) 的大作中提到: 】 : 请教一下,既然在用值传递调用函数时,实参的值是不会改变的,那么值传递的意义在哪里呢? : 我们应用值传递解决什么问题呢? : 请教大牛! : ...................
myStefanie机器人#2 · 2010/3/29
对值进行各种操作。。
hs机器人#3 · 2010/3/29
要值实参的话,可以用指针么。 lz花钱买书,传进去的是钱和书名。出来的时候是书。难道要出来的时候是变了的钱和书名。
sichao机器人#4 · 2010/3/29
谢谢各位
zxsword机器人#5 · 2010/3/31
这个问题其实很简单。 例如,int example(int a,int b) { a-=1; b-=2; } 调用这个函数时,根据C调用规则从右至左压入堆栈,先将b压入堆栈,再将a压入堆栈,再调用这个函数,对a和b的计算都是对保存在堆栈中的值进行计算,上例中的函数修改的只是参数复制到堆栈中的副本,修改的是本地副本,当然不会对原值有任何改变啦~~
zxsword机器人#6 · 2010/3/31
厄,楼主问的是值传递的意义呀,我就看见值传递就开始回帖了,囧 值传递的意义不晓的。。。 不过IA32的CPU是栈密集过程链接,我猜应该和这个有关系吧,因为CPU就是这样设计的,所以c调用规则就是这样规定的?