引用作为参数
Coddy C++ 指针 课程的第 9 课,共 14 课。
现在,我们可以看到,在调用函数时使用引用作为参数,可以让操作变得更简单。
回到将指针作为参数传递的课,我们提到过,将值传递给函数时,我们在函数中操作的值是所传原始值的副本。
我们用指针解决了这个问题,但不必使用地址、解引用、指针等。我们只需将参数标记为引用,就能像处理普通值一样进行常规操作。
// 不必这样写
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
cout << *x << " " << *y << endl;
}
// 可以这样写
void swap(int &x, int &y) {
int temp = x;
x = y;
y = temp;
cout << x << " " << y << endl;
}现在,如果我们调用 swap() 函数,传入的两个整数的值就会被永久改变。因此,我们不必获取这些值的内存地址,再通过解引用来修改这些内存地址上的值,只需将实际值的引用作为参数传入,并直接对它们进行操作。由于这些引用指向原始值,因此所做的任何更改都是永久的。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单完成两课前的 Calculator 函数,不过不要使用指针,而要使用变量 large 和 small 的引用。在函数中,用 large 减去 large 和 small 的差,并将 small 加到它自身上。
输入
5 3
输出
5 3
3 6
解释
用 5 减去 5 和 3 的差,也就是 2,结果是 5 - 2 = 3;将 3 加到 3 上,结果是 6
注意:不要编写 main() 函数
亲手试试
#include <iostream>
using namespace std;
void Calculator(// 将参数 large 和 small 作为引用传入) {
// 编写计算代码
}
// 不要编写 main() 函数C++ 指针中的所有课
自己练习: C++ 在线编译器