引用與指標

2021-08-03 22:59:00 字數 1131 閱讀 7212

1.引用:引用不是乙個定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。

2.定義的格式:型別 & 引用變數名 = 已定義過的變數名

3.引用的特點:

a.乙個變數可取多個別名

b.引用必須初始化

c.引用只能在初始化的時候引用一次,不能改變為再引用其他的變數。

舉例: 1)

void test()

4.引用作為引數

1)值傳遞:如果形參為非引用的傳值方式,則生成區域性臨時變數接受實參的值。

2)引用傳遞:如果形參為引用型別,則形參是實參的別名。

void swap(int& left,int& right)

3)指標傳遞

void swap(int& left,int& right)

當不希望函式改變引數x的值時,盡量使用常引用傳參。

5.傳值做返回值與傳引用作為返回值

1)

int add(int d1,int d2)

2)

int& add(int d1,int d2)

通過彙編看傳值返回和傳引用返回:

結論:

1)不要返回乙個臨時變數的引用。

2)如果返回物件出了當前函式的作用域依舊存在,則最好使用引用返回,這樣會更高效。

6.引用和指標的區別和聯絡

1)引用只能在定義時初始化一次,之後不能改變指向其它變數(從一而終);指標變數的值可變。

2)引用必須指向有效的變數,指標可以為空。

3)sizeof指標物件和引用物件的意義不一樣。sizeof引用得到的是所指向的變數的大小,而sizeof指標是物件位址的大小。

4)指標和引用自增(++)自減(--)意義不一樣。

5)相對而言,引用比指標更安全。

指標比引用更靈活,但是也更危險。使用指標時一定要注意檢查指標是否為空。指標所指的位址釋放以後最好置0,否則可能存在野指標問題。

指標與引用

摘自 高質量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...