按值、引用和名称调用

Call by value, reference and name

本文关键字:调用 引用 按值      更新时间:2023-10-16

可能的重复项:
按引用/C++值传递

我想知道按值/引用/名称调用之间有什么区别。为什么使用一个而不是另一个是有益的?

按值调用:将参数的副本传递给函数

调用 be 引用:不做额外的复制,直接传递调用方的变量。

主要区别在于,在价值范式调用中制作了一个额外的不必要的副本......您应该始终使用调用 be 引用(或 const 引用),除非被调用方需要修改变量并且您不希望更改调用方的变量...

按值调用会创建传递给函数的参数副本 - 因此对于可能产生大开销的大型对象。它还会阻止您对函数内的参数进行任何更改,因为它们只会反映在副本中。按引用调用传递对对象的引用,因此可以对该对象进行更改 - 当然,除非您传递const引用。