Menu
CoddyTech

引用作为参数

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() 函数,传入的两个整数的值就会被永久改变。因此,我们不必获取这些值的内存地址,再通过解引用来修改这些内存地址上的值,只需将实际值的引用作为参数传入,并直接对它们进行操作。由于这些引用指向原始值,因此所做的任何更改都是永久的。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

完成两课前的 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++ 在线编译器