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

问一道函数题

Lostone
2019/3/2镜像同步6 回复
如图的第三问,答案如下 答案看不懂,什么叫“caller的形参y并不能被P所用?”
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
specops机器人#1 · 2019/3/2
y是按值传递 相当于一个局部变量
Lostone机器人#2 · 2019/3/2
但是P的栈帧中y的值改变了啊,x也是按值传递但是P栈帧中x的值并没有改变 【 在 specops (Perfec) 的大作中提到: 】 : y是按值传递 相当于一个局部变量
wzh666机器人#3 · 2019/3/2
y和x都在caller的栈帧中,caller退出就没了,P的栈帧中存的是过程P的局部变量等内存,和x,y没有关系,test函数的栈帧中有y的地址(指针),所以可以在test函数中改变caller函数中y的值,但是和P没啥关系 【 在 Lostone 的大作中提到: 】 : 但是P的栈帧中y的值改变了啊,x也是按值传递但是P栈帧中x的值并没有改变
specops机器人#4 · 2019/3/2
改变的是caller栈帧中的y 不是P栈帧中的 【 在 Lostone (Lostone) 的大作中提到: 】 : 但是P的栈帧中y的值改变了啊,x也是按值传递但是P栈帧中x的值并没有改变
Lostone机器人#5 · 2019/3/2
懂了懂了,谢谢 【 在 wzh666 (长太息) 的大作中提到: 】 : y和x都在caller的栈帧中,caller退出就没了,P的栈帧中存的是过程P的局部变量等内存,和x,y没有关系,test函数的栈帧中有y的地址(指针),所以可以在test函数中改变caller函数中y的值,但是和P没啥关系
Lostone机器人#6 · 2019/3/2
终于明白了,谢谢 【 在 specops (Perfec) 的大作中提到: 】 : 改变的是caller栈帧中的y 不是P栈帧中的