引用和指標的區別

2021-10-23 05:16:32 字數 811 閱讀 9828

一、二者的定義

1、指標:指標一般指向乙個函式或乙個變數。在使用乙個指標時,乙個程式既可以直接使用這個指標所儲存的記憶體位址,又可以使用這個位址裡儲存的函式的值。指標的使用就是為了避免拷貝構造,拷貝賦值等預設操作這些高代價的操作,而傳遞大量的資料。

2、引用:相當於乙個變數的另乙個名稱。對引用的操作也就是對變數的操作。

二、如何正確書寫

1、指標:

int a=2;

//第一種

int*p;

p=&a;

//第二種

int*p=

&a;

int a =2;

iint &b = a;

表示的意思是:&b引用a的位址,b引用的是a的值。如果說a存放的位址為0x100,那麼&b=0x100,而b=2;

定義的方式是:型別名+&別名=物件名

3、二者的區別

(1)、指標是實體,引用是別名

(2)、引用總是指向乙個物件,它實際上是物件的另乙個別名。

(3)、指標可以為空 ,而引用不能為空引用,引用一定會對應著某個物件。

(4)、指標可以在被重複複製(但必須是同型別),而引用所引的永遠是一開始初始化那個物件。

(5)、指標存放的是物件的位址,需要把物件的位址賦值給指標。而引用是傳位址。

(6)、引用沒有const、指標有const。

(7)、引用使用時無需解引用(*),指標需要解引用。

4、相同點

都是位址的概念;指標指向一塊記憶體,它的內容是所指記憶體的位址,是個實體;引用是某塊記憶體的別名。

指標引用和引用指標的區別

c 在傳參的過程中,指標 和指標引用 是有區別的。雖然,我們往往可以通過傳指標然後通過間址訪問來修改指標所指向物件的值,同樣,通過引用也可以直接修改物件的值。但是,當傳指標的時候有乙個問題,就是,我們雖然可以通過指標來修改指標所指向物件的值,但是我們沒有不能直接修改指標的內容 也就是指標變數存放的位...

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

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

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

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