引用和指標的區別

2021-04-22 16:39:05 字數 561 閱讀 8558

1、定義引用時必須初始化,而指標不必

int a=1;

int b=2;

int *p;

int &ra = a;

2、引用的物件不能更改,指標可以

ra = b;

這裡僅僅是把b的值賦給a,而不是把ra設為b的引用。

3、引用不能為空,指標可以為null

再談談引用和指標作為函式引數時的情況:

兩種引數都允許函式修改實參指向的物件,

如果乙個引數可能在函式中指向不同的物件,或者這個引數可能不指向任何物件,則必須使用指標引數.

相對於傳指標,傳引用通常是不需要考慮記憶體管理的問題.

如果資料物件是較大的結構,則使用const指標或const引用,以提高程式的效率。這樣可以節省複製結構所需的時間和空間.

如果資料物件是類物件,則使用const引用。類設計的語義常常要求引用,這是c++新增特性的最要原因。 因此,傳遞類物件引數的標準是安全引用傳遞

使用引用引數的主要原因有兩個:

+程式設計師能修改函式中的資料物件。

+通過傳遞引用而不資料物件,可以提高程式的執行數度。

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

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

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

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

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

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