August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
但是,如果我们确实希望函数修改其参数,又该怎么办呢?有时,我们有充足的理由需要这么做。例如,我们可能需要一个init()函数为vector元素赋值:
这里,我们希望init()函数修改参数vector,因此我们没有使用传值参数(拷贝参数值),也没有使用传常量引用参数(不允许修改参数),只是将实际参数的“简单引用”传递给形参。
让我们从更技术化的角度来探讨一下引用。引用是这样一种语法机制,它允许用户为一个对象声明一个新的名字。例如,int&是一个整型对象的引用,因此,我们可写出如下代码
也就是说,任何对r的使用实际上使用的是i。
引用的一个用途是作为简写形式。例如,我们可能用到如下二维vector
我们需要多次使用某个vector元素v[f(x)][g(x)]。v[f(x)][g(x)]是一个复杂的表达式,我们当然不愿意反复输入它。如果我们只是需要这个元素的值,那么可以声明下面这个变量
然后多次使用val即可。但如果我们既要从v[f(x)][g(x)]读取值,又要向它写入值呢?这时,引用就派上用场了: ...