•宣告乙個識別符號為引用,即表示該識別符號可作為另乙個有名或無名物件的別名
–int a = 10;
int& b = a;
int& c = b;
++c;
cout
<< a << endl; // 11
intconst& d = c;
++d; // error
•在c++中,無名物件通常都被處理為右值,只能通過帶有常屬性的引用引用之
–int
const& a = 10; // 純右值
intconst& b = 20;
intconst& c = a + b; // 將亡右值
•引用必須在定義的同時初始化,不允許先定義再賦值
–int a = 10;
int& b = a; // ok
–int a = 10;
int& b; // error
b = a;
•無法定義乙個什麼都不引用的引用
–int& r = null; // error
•但「野引用」或稱「懸空引用」確實是存在的
–int& r = *new int (1);
++r;
cout << r << endl; // 2
delete &r;
++r; // 未定義
•解引用乙個野引用,就跟解引用乙個野指標一樣,其結果將是未定義的,可能導致崩潰(段錯誤),
可能意外地修改了其它有效堆記憶體中的資料,也可能什麼也沒有發生而且結果還很正確,
但沒有人能保證到底會是哪種結果
•引用一經初始化便不能再引用其它物件
–int a = 10, b = 20;
int& c = a; // c是a的引用,a是c的目標
c = b; // 將b的值賦給c的目標即a,而非令c引用b
•引用只有在其定義及初始化語境中具有「名」語義,一旦完成了定義及初始化,
引用就和普通變數名一樣,被賦予了「實」語義,即代表它的目標,而不是別名本身
python基本特性
python是一種高階 多目的的程式語言,在很多領域和技術層面都有廣泛的應用。python和大多數的支撐庫和工具都是開源的,通常可以非常靈活的使用而且有開放的協議。也可以使用cpython完成將解釋性語言轉化為實施可執行的python二進位制 的應用 python語言支援不同的程式設計與實現框架,例...
C 學習之引用特性
引用即給變數賦予乙個別名,就像外號一樣,我叫李曉明,外號小明,實際都是指李曉明這個人。includeusing namespace std int main 程式的輸出記過就是10,通過b的引用,將a的值改掉了。結構體中的引用,includeusing namespace std typedef s...
C 函式新特性 引用型別
引用是已定義的變數的別名,主要用途是用作函式的形參。通過將引用變數作為形參可以直接使用原始資料而不是新建乙個副本。必須在宣告引用變數的時候進行初始化 int rat int rodent rodent rat 不可以這樣做!而應該這樣 int rat int rodent rat 正確!比較下面交換...