指標和引用的區別

2021-06-14 04:17:35 字數 639 閱讀 8377

相同點:

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

不同點:

1.  指標是乙個實體,而引用僅是個別名。

2.  從記憶體上來講  系統為指標分配記憶體空間,而引用與繫結的物件共享記憶體空間,系統不為引用變數分配記憶體空間。

3.  引用定義的時候必須要初始化,指標則可以在任何時候被初始化。

4.引用只能在定義時被初始化一次,初始化以後不允許再重新繫結物件;而指標初始化以後可以改變指向的物件;

5. 引用不能為空,指標可以為空(null);

6.  引用的大小是所指向的變數的大小,因為引用只是乙個別名而已;指標的大小是指標本身的大小。

即:「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身的大小。

7.   指標和引用的自增(++)運算意義不一樣;

int main(int argc,char** argv)

{ int i=10;

int& ref=i;

ref++;

cout<<"i="<8.合法性區別,在使用引用之前不需要測試它的合法性。相反指標則應該總是被測試,防止其為空。

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

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

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

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

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

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