引用:
引用為物件起了另乙個名字(即與其引用物件完全等價);
通過宣告符&的形式來定義引用;
int ival=
1024;
int&refval=ival;
//refval指向ival(是ival的另乙個名字)
一般在初始化變數時,初始值會被拷貝到新建的物件中。然而定義引用時,程式把引用和初始值繫結在一起;(如:&refval=ival;)而不是將初始值拷貝給引用。一旦初始化完成後,引用將和他的初始值物件一直繫結在一起。因此無法令引用重新繫結到另乙個物件,因此引用必須初始化。
引用即別名:
引用並非物件,相反的,他只是為乙個已經存在的物件所起的另外乙個名字;
定義乙個引用後,對其進行的所有操作都是在與之繫結的物件上進行的;
refval=
2//把2賦值給refval指向的物件,此處即是賦給了ival;
int ii=refval;
//與ii=ival執行結果一樣;
給引用賦值,實際上是把值賦給了與引用繫結的物件。(因為這個物件一般是乙個變數)獲取引用的值,實際上是獲取了與引用繫結的物件的值。同理,以引用作為初始值,實際上是以引用繫結的物件作為初始值;
int
&refval3=reval;
//refval3繫結到了那個與refval繫結的物件上,這裡就是繫結到ival上;
int i=reval;
//i被初始化為ival的值
注意:
需要注意的是;引用只能繫結在物件上,而不能與字面值或者是某個表示式的計算結果繫結在一起。
int
&refval4=
10;//引用型別的初始化值必須是乙個物件;
double dval=
3.14
;int
&refval5=dval;
//錯誤:此處引用型別的初始化值必須是int型物件;
指標與引用
摘自 高質量c 程式設計 指標與引用,在more effective c 的條款一有詳細講述,我給你轉過來 條款一 指標與引用的區別 指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用...
引用與指標
引用就是物件的另乙個名字,在實際的程式中,引用主要用作函式的形式引數。引用是一種復合型別,通過在變數名前新增 符號來定義。復合型別是指用其他型別定義的型別。在引用的情況下,每一種引用型別都 關聯到 某一其他型別。引用必須用與該引用同型別的物件初始化。當引用初始化後,只要該引用存在,它就保持繫結到初始...
指標與引用
include iostream using namespace std void testref int i 10 引用不可以為空,他是乙個物件的別名 int ref i ref cout i 00824f1e mov dword ptr i 1 把i的位址傳入eax 並把eax指標的位址傳給re...