但我记得复制调用在控制返回时,被调用过程根据所记录的实参的左值把形参 的当前值复制到相应实参的存储空间中(copy out),也就是说实参的值其实也是会改变的
时间: 2024-03-30 11:38:27 浏览: 52
体育课评分系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程.zip
您说得没错。在一些编程语言中,比如 Ada,复制调用时会将参数的值复制一份传递给函数,函数内部对参数的修改不会影响到原始的变量。但是在函数返回时,实参的值会被复制回去,也就是说实参的值会改变。
这种方式被称为"按值调用-按结果返回",也称为"in-out"调用方式。在这种调用方式中,函数参数的值在调用时被复制一份,函数内部对参数的修改不会影响到原始变量。但是在函数返回时,函数的返回值被复制回去,从而改变了实参的值。
这与引用调用和传址调用不同,引用调用和传址调用在函数内部对参数的修改会直接影响到原始变量,不需要在函数返回时再进行复制。
阅读全文