1. 程式人生 > >C++學習筆記 (四) ---- 引用

C++學習筆記 (四) ---- 引用

引用算是對 C語言的又一個擴充,可以看作是資料的一個別名,定義方式類似於指標,只是用 & 取代了 

指標從本質上講就是存放變數地址的一個變數,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的資料的改變。

而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初始化,而且其引用的物件在其整個生命週期中是不能被改變的(自始至終只能依附於同一個變數)。

 

格式: type &name = data;

type 是被引用的資料的型別,name 是引用的名稱,data 是被引用的資料。引用必須在定義的同時初始化,以後不能再引用其它資料,這有點類似於常量(const 變數)。

#include <iostream>
using namespace std;

int main(){
    int a = 8;
    int &b = a;
    cout<<a<<", "<<b<<endl;
    cout<<&a<<", "<<&b<<endl;

    return 0;
}

注意:應用在定義時使用 &,使用時不能加 &,加 & 代表取地址。這和指標相反。

引用不能繫結到臨時資料;引用作為函式的返回值時,不能返回區域性變數的引用。

const 引用只能讀,與繫結的物件是否是 const 無關。

非 const 引用可讀可寫,只可與非 const 物件繫結。