C++的引用类型小讨论
C++的引用类型小讨论
一、C++引用的意义?
在函数中对一个参数进行修改:
1
2
3
4
5
6
7
8void incr(int& rr) { rr++; }
//This function increases the "parameter" given by 1.
//Treat '&' as "get rr's pointer".
void g()
{
double ss = 1;
incr(ss);
}加速。(针对常量引用)
我们不妨考虑一下大的对象的存在和一般函数的“形参”思维。由于有“形参”的存在,函数在传入参数时相当于复制了一个temp,接着处理temp,最后把result回传(保证实参在函数过程中不被改变)。那么当对象较大时,这一temp的初始化过程会占用一定的时间,降低效率。此时采用例如 “const int& number” 的形式,就可以立刻传入一个对象并且该对象不能被改变,等同于传了参数进来。
当然,int类型的参数这么传并不能节约多少时间,此处只是扔一个小栗子。
二、for与引用
先看这个函数:
1 |
|
可能有人会问:遍历字符串s的时候,每个字符都要以引用形式绑定到c,但引用不是只可以绑定一次么?
我们可以将它理解成:
1 |
|
引用可以且仅可以绑定一次,
但在这种for相关的特殊引用中,每次循环,c引用都会被消解,生命周期结束。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!