产生临时变量的三种情况
- 1:By value 方式传值
传值的方式传递参数,会在堆中重新分配一个临时区域,将实参的数据copy到临时区域中 引用类型传参不会产生临时变量
- 2:参数为const的类型
保护数据不被修改
- 3:类型转换
C++禁止为非常量引用产生临时对象 临时变量不能作为非const引用参数,因为一个参数如果是以非const引用传入,C++就会认为程序员会爱函数中修改这个值,被修改的引用要在函数返回后发挥作用。当把临时变量当作非const引用传进函数,由于临时变量的特殊性,程序员不能操作临时变量,而且临时变量随时可能被释放掉。
reference:blog.csdn.net/wxn70441473…