區別如下:
<1>
、初始化要求不同。引用在建立的同時必須初始化,即引用到乙個有效的物件;而指標在定義的時候不必初始化,可以在定義後面的任意地方重新初始化。
<2>、可修改性不同。引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用;而指標在任何時候都可以改變為指向另一物件。給引用賦值並不是改變它和原始物件的繫結關係。
<3>、不存心null的引用,引用不能使用指向空值的引用,它必須指向某個物件;而指標可以是null,不需要總是指向某些物件,可以把指標指向任意物件,所以指標更加靈活,也容易出錯。
<4>、測試需要的區別。由於引用不會指向空值,這意味著使用引用之前不需要測試合法性;而指標需要經常驚醒測試。因此使用引用的**效率比使用指標的要高。
<5>、應用的區別。如果是指一旦指向乙個物件後就不會改變指向,那麼久應該使用引用。如果有存在指向null(不指向任何物件)或者在不同時刻指向不同物件這些可能性,應該使用指標。
事實上,在語言層面,引用的用法和指標一樣;在二進位制層面,引用一般都是通過指標來實現的,只不過編譯器幫我們完成了轉換。總體來說,引用既具有指標的效率,又具有變數使用的方便性和直觀性。
指標引用和引用指標的區別
c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...
指標,引用的區別
指標傳遞引數本質上是值傳遞的方式,它傳遞的是乙個位址。在值傳遞過程中,被調函式的形式引數作為被呼叫函式的區域性變數處理,即在棧中開闢記憶體空間來存放主調函式傳進來的實參的值,從而成為實參的乙個副本。值傳遞的特點是被呼叫函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值。對...
傳指標和傳指標引用的區別 指標和引用的區別(本質)
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...