C++中函数的参数加了&和const的作用

例如下面这段代码

fun(int* in, const std::string& str)
{

}
  • 不加引用的话,str则被复制一份,函数中对str的操作实质上是对其复制品的操作,所以即使在函数中修改了str,调用层的原str并不会被改变。
  • 加了引用的话,传入的str即是调用层的实际参数,这样省却了复制过程,效率会有提高。但如果函数中修改了str,则原str也会改变,因为其实是同一个东西。
  • 有时候为了追求效率(防止传值时拷贝构造函数的调用开销),又希望避免改变原来的str,则可在引用的基础上加const修饰,这样函数中就不能再修改str的内容(否则会编译出错)。

Original: https://www.cnblogs.com/chelseafan/p/15024284.html
Author: 想睡觉的人
Title: C++中函数的参数加了&和const的作用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/712689/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球