施工提示

本博文尚在施工中,内容并未完成且可能变更。

引用与指针

C++ 中的引用(reference)与指针(pointer)可能是最令人头痛的内容。

引用

在定义引用时,使用 & 符作为标识符前缀:

int n = 7;
int &r = n;     // 定义一个 n 的引用,其名为 r

引用在定义时不会拷贝值,而是与被引用对象进行绑定。

  • 引用本身不是对象

  • 引用在定义时必须初始化,且其初始值必须是一个同类型对象。错误示例:

    double pi = 3.14159;
    int n = 7;
    int &r = n;
    
    // 以下均错误
    int &r1 = 255;  // 不能引用字面值
    int &r2 = r;    // 不能引用一个引用
    int &r3 = pi;   // 对象非 int 类型
    

注意

再次重申:引用不是对象,它只是被引对象的另一个名字。

指针