C C 指標和引用區別

2021-10-02 03:54:27 字數 543 閱讀 5422

引用是別名,所以自身沒有空間,那麼必須與乙個合法的儲存單元關聯,所以定義必須初始化,所以引用不能為空,沒有null引用。

指標是型別,有空間,可以為null,適用於動態分配記憶體。

本質區別就是引用別名指標型別,所以才表現出各自不同的特點。

參考:(1)儲存空間:指標是實體,有記憶體空間;引用是別名,沒有空間。

(2)初始化:引用定義時必須初始化,指標不用。

(3)物件修改:指標指向可以改,引用指向不可以改變,引用賦值是修改被引用物件的值。

(4)空null:引用不能為空,沒有null引用,引用必須與一塊合法的儲存單元關聯。但指標可以。

(5)sizeof:sizeof(引用)計算的是它引用的物件的大小,而sizeof(指標)計算的是指標本身的大小。

(6)如果返回的是動態分配的記憶體或物件,必須使用指標,使用引用會產生記憶體洩漏。(???為什麼)

C C 指標和引用的區別

從現象上看,指標在執行時可改變其所指向的值,而引用一旦和某個物件繫結後就不在改變。這句話可以這樣理解 指標可以被重新賦值以指向另乙個不同的物件。但是引用總指向在初始化時被指定的物件,以後不能改變,但是指定的物件內容可以改變。從記憶體上分配看,程式為指標變數分配記憶體區域,而不用為引用分配記憶體區域,...

C C 中指標和引用的區別

1.指標有自己的一塊空間,而引用只是乙個別名 2.使用sizeof看乙個指標的大小是4,而引用則是被引用物件的大小 3.指標可以被初始化為null,而引用必須被初始化且必須是乙個已有物件 的引用 4.作為引數傳遞時,指標需要被解引用才可以對物件進行操作,而直接對引 用的修改都會改變引用所指向的物件 ...

C C 中指標和引用的區別?

1.指標有自己的一塊空間,指標是乙個變數,只不過這個變數儲存的是乙個位址,指向記憶體的乙個儲存單元,即指標是乙個實體。而引用只是乙個別名 2.使用sizeof看乙個指標的大小是4,而引用則是被引用物件的大小 3.指標可以被初始化為null,而引用必須被初始化且必須是乙個已有物件 的引用 4.作為引數...