指標和引用有什麼分別 如果傳引用比傳指標安全,為什

2021-05-22 12:12:58 字數 486 閱讀 5378

指標和引用有什麼分別;如果傳引用比傳指標安全,為什麼?如果我使用常量指標難道不行嗎?

(1) 引用在建立的同時必須初始化,即引用到乙個有效的物件;而指標在定義的時候不必初始化,可以在定義後面的任何地方重新賦值.

(2) 不存在null引用,引用必須與合法的儲存單元關聯;而指標則可以是null.

(3) 引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用;而指標在任何時候都可以改變為指向另乙個物件.給引用賦值並不是改變它和原始物件的繫結關係.

(4) 引用的建立和銷毀並不會呼叫類的拷貝建構函式

(5) 語言層面,引用的用法和物件一樣;在二進位制層面,引用一般都是通過指標來實現的,只不過編譯器幫我們完成了轉換.

不存在空引用,並且引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用,顯得很安全。

const 指標仍然存在空指標,並且有可能產生野指標.

總的來說:引用既具有指標的效率,又具有變數使用的方便性和直觀性.

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...

傳指標和傳指標引用的區別 指標和引用的區別(本質)

指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...