第七章、引用

在 C 语言中我们经常使用指针用来记录一个变量的地址,然后使用解引用运算符(*)去访问或改变他指向的变量。使用指针这样的方法非常灵活且高效,但代码的可读性差,且可能出现无效的野指针,导致系统崩溃。

引用 是 C++ 引入一个新的语法,使用引用可以有效替代指针且使用非常方便。

1. 引用

引用(refrence)是为一个变量取一个别名,这个引用绑定原有的变量,使用这个别名等同于使用原有的变量。引用是指针的另一种用法。

声明引用变量的语法

变量类型 &变量名1=,  &变量名2=, ...;

说明

  1. 引用型变量必须在创建时进行初始化。
  2. 引用型变量在创建后无法改变绑定关系。
  3. 引用型变量的类型必须和绑定的变量类型完全一致。

示例

// filename: refrence.cpp
#include <iostream>

using namespace std;

int main(int argc, char * argv[]) {
    int x = 100;
    int &rx = x;  // rx为引用类型的变量,绑定x;
    cout << "x:" << x << " rx:" << rx << endl;
    x = 200;
    cout << "x:" << x << " rx:" << rx << endl;
    rx = 300;
    cout << "x:" << x << " rx:" << rx << endl;

    return 0;
}

编译和运行结果如下

weimz@mzstudio:~$ g++ -o refrence refrence.cpp
weimz@mzstudio:~$ ./refrence 
x:100 rx:100
x:200 rx:200
x:300 rx:300

上述示例中 rx 是变量 x 的引用,可以通过 rx 直接访问 x