我正在读一本关于C ++的书,有一个例子,他们通过引用常量传递给函数。
int square(const int& n)
...
我看不出这一点?如果您不打算对变量进行任何更改,为什么不通常按值传递它。不是通过引用传递的全部内容,因此您可以更改变量的值。
答案 0 :(得分:1)
对于int来说,它可能没什么区别。但是对于更大的数据类型,传递const引用是一种性能优化。因此,许多程序员只使用const引用而不是出于习惯的价值。
答案 1 :(得分:0)
对于复杂类型,传递值比通过引用传递要昂贵得多,因为必须将值的副本传递给函数。考虑将大向量传递给计算中值的函数。你真的想分配一个新的向量,复制所有的值,在新的向量上执行平均值,然后释放你分配的内存吗?通过引用传递可以保存分配/复制/自由循环。
int
,无所谓。事实上,在大多数平台上,通过价值会更便宜。
答案 2 :(得分:0)
如果你通过引用传递它,你只传递指针,这是一个“较小”的东西要通过。此外,该对象不会复制到您的函数中,因此您总共使用较少的内存。