引用

C++ 引用

  • 引用是一种特殊的指针类型,一旦被定义就不能重新赋值,并且不能被设置为空值。

  • 使用引用时的语法与原变量相同

    • 对引用类型进行解引用时,不需要使用 *
    • 赋值时也不需要用 & 来取地址
    using namespace std;
    
    string foo = "I am foo";
    string bar = "I am bar";
    
    string& fooRef = foo; // 建立了一个对foo的引用。
    fooRef += ". Hi!"; // 通过引用来修改foo的值
    cout << fooRef; // "I am foo. Hi!"
    // 这句话的并不会改变fooRef的指向,其效果与“foo = bar”相同。
    // 也就是说,在执行这条语句之后,foo == "I am bar"。
    fooRef = bar;
    
  • 不能修改一个常量引用的值

    const string& barRef = bar; // 建立指向bar的常量引用。
    // 和C语言中一样,(指针和引用)声明为常量时,对应的值不能被修改。
    barRef += ". Hi!"; // 这是错误的,不能修改一个常量引用的值。