指標與引用

2021-09-08 20:33:50 字數 491 閱讀 1636

1、引用的使用場景:必須指向某個物件(不能指向null),並且從始至終都指向這個物件。還有一種情況:操作符的返回值要求是引用,這樣就可以對它賦值。

2、指標的使用場景:不適合使用引用,就使用指標。

3、能使用引用,盡量使用引用。因為引用相對更高效,不需要判斷指向是否為null

4、引用相對更安全,引用和指標都有不安全的情況,也就是指向的內容被銷毀了。

5、指標指向的內容被銷毀,該指標就是野指標,野指標不是null指標。產生野指標的情況有:

a、指標變數沒有初始化,指標變數建立時,取值是隨機的,不是null,因此指標變數定義時,要麼初始化為null,要麼初始化為合法的記憶體。

b、對指標進行了delete,但是沒把指標設為null

c、指向了棧記憶體

6、引用的真實物件被銷毀,往往是由於指向了棧上的物件,也就是方法返回了引用。

7、引用和指標都有不安全的情況,也就是指向的內容被銷毀了。相對而言,對於引用,指向內容被銷毀的情況更容易排查。

指標與引用

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