引用和指標的區別

2021-08-16 02:08:36 字數 674 閱讀 2089

區別:

1.引用訪問乙個變數是直接訪問,而指標是間接訪問。

2.引用是乙個變數的別名,本身不單獨分配自己的記憶體空間;而指標有自己的記憶體空間。(引用實際上是占用記憶體空間的)

3.引用只能在定義的時候初始化,之後不可變;而指標可變。(引用「從一而終」,指標「見異思遷」)

4.引用不能為空,指標可以為空。

5.在作sizeof引數時:sizeof(引用)計算的是變數(物件)的大小;sizeof(指標)得到的是指標本身的大小。

6.指標和位址運用自增(++)不同:引用是值進行自增,而指標是位址進行自增。

7.引用是型別安全的,而指標不是。(原因是引用做了型別檢查,而指標沒有)

8.因為引用一旦被初始化就不可改變,所以引用沒有const修飾,而指標可以有const修飾。(這裡注意,引用的那段記憶體中的值是可以被改變的,所以可以加const修飾,比如,const int &y = x;稱為常引用。不能加const修飾的是引用本身,即變數的別名不能改變)

在應用中,應該更多的使用引用。

引用較指標的好處:在函式呼叫時,在記憶體中不會生成副本。在函式引數傳遞中,解決了大塊資料或物件的傳遞效率和空間不如意的問題。指標通過某個指標變數指向乙個物件後,它對所指向的變數間接操作,程式可讀性差。而由於就是目標變數的別名,對引用的操作就是對目標變數的操作。

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

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

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

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

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

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