我正在阅读一本关于 C++ 的书,并且有一个示例,他们通过引用将常量传递给函数。
int square(const int& n)
...
我看不出这有什么意义?如果您不打算对变量进行任何更改,为什么不直接按值传递它。不是通过引用传递的全部意义,因此您可以更改变量的值。
我正在阅读一本关于 C++ 的书,并且有一个示例,他们通过引用将常量传递给函数。
int square(const int& n)
...
我看不出这有什么意义?如果您不打算对变量进行任何更改,为什么不直接按值传递它。不是通过引用传递的全部意义,因此您可以更改变量的值。
对于 int 而言,它可能没有真正的区别。但是对于更大的数据类型,传递 const 引用是一种性能优化。很多程序员只是出于习惯而使用 const 引用而不是按值引用。
对于复杂类型,按值传递比按引用传递要昂贵得多,因为必须制作值的副本才能传递给函数。考虑将一个大向量传递给计算中值的函数。您真的要分配一个新向量,复制所有值,对新向量执行平均,然后释放您分配的内存吗?通过引用传递可以节省分配/复制/释放周期。
对于int
,没关系。事实上,在大多数平台上,按价值传递会更便宜。
如果通过引用传递它,则只传递指针,这是要传递的“较小”的东西。此外,该对象不会复制到您的函数中,因此您总共使用的内存更少。