在函数中修改参数'按值传递'并将其作为局部变量使用[英] Modifying arguments 'passed by value' inside a function and using them as local variables

本文是小编为大家收集整理的关于在函数中修改参数'按值传递'并将其作为局部变量使用的处理方法,想解了在函数中修改参数'按值传递'并将其作为局部变量使用的问题怎么解决?在函数中修改参数'按值传递'并将其作为局部变量使用问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我见过一些代码,其中按值传递给函数的参数被修改或分配了一个新值,并且被用作局部变量.

这是一件好事吗?这样做有什么陷阱吗?或者这样编码可以吗?

推荐答案

函数的参数本质上是一个局部变量,所以这种做法原则上还不错.

另一方面,这样做可能会导致维护问题.如果稍后有其他程序员出现,他可能希望变量保存传入的值,并且更改将导致错误.

重用变量的一个理由是对内存使用效率的误解.实际上,它不能提高效率,而且可以降低效率.原因是编译器可以自动检测在两个不同的时间对两个不同的变量使用同一个寄存器是否有用,如果更好就会这样做.但是程序员不应该为编译器做出这个决定.这将限制编译器可以做出的选择.

最安全的做法是在需要新值时使用新变量,并依靠编译器使其高效.

本文地址:https://www.itbaoku.cn/post/359075.html