引用與指標

2021-09-28 06:11:04 字數 1153 閱讀 3224

引用:

引用為物件起了另乙個名字(即與其引用物件完全等價);

通過宣告符&的形式來定義引用;

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...