引用和指標二(側重異同)

2021-08-21 13:23:58 字數 654 閱讀 7413

引用指標的區別:

(1)初始化要求不同。

引用在建立的同時必須初始化,即引用到乙個有效的物件;

指標在定義的時候可以不必初始化,可以在定義後面的任何地方重新賦值。

(2)可修改行不同。

引用一旦被初始化為指向乙個物件,它就不能被改變為另乙個物件的引用;

指標在任何時候都可以改變為指向另乙個物件。

給引用賦值並不是改變他和原始物件的繫結關係。

(3)null。

引用不能使用指向空值的引用,它必須總是指向某個物件;

指標則可以是null,不需要總是指向某些物件,可以把指標指向任意的物件,所以指標更加靈活,也容易出錯。

(4)測試需要的區別。

由於引用不會指向空值,這意味著使用引用之前不需要測試他的合法性;

指標需要經常進行測試。

使用引用的**效率比使用指標的高。

(5)應用的區別。

如果是指一旦指向乙個物件後就不會改變指向,那麼應該使用引用;

如果有存在指向null(不指向任何物件)或在不同時刻指向不同物件的這些可能性,則應該使用指標。

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

【在語言層面,引用的用法和物件一樣;在二進位制層面,引用一般是通過指標來實現的。】

引用和指標一(側重引用)

1 一般而言,在 左邊,表示引用 在 右邊,表示取位址。eg int rn a rn為普通變數a引用,即為a的別名,共享記憶體,佔同乙個記憶體空間。int p a 定義指標p並初始化為a的位址,即p指向a,其中a為普通變數 省略其定義 2 引用必須也只能在宣告的時候初始化,以後均不能把該引用作為其他...

c 指標和引用異同

說白了c 中的引用就是指標。至少底層實現是這樣。乙個例子說明。一下 include int main int argc char argv 1 include 2 3 int main int argc char argv 4 00401057 pop edi 00401058 pop esi 00...

C 指標和引用的異同點

相同點 不同點 指標是乙個實體,而引用僅僅是乙個別名 在使用時候引用無需解引用,而指標需要解引用 指標只能在定義時別初始化一次,之後不可在變,指標一般可變 除非常量指標 引用不能為空而指標可以為空 sizeof引用 得到的是所指向的物件的大小,而 sizeof指標 得到的是指標本身的大小 聯絡 引用...