例如下面这段代码
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/
转载文章受原作者版权保护。转载请注明原作者出处!