1. 程式人生 > >C++ 引用形參和指標形參

C++ 引用形參和指標形參

從引用形參和非引用形參的區別來看,似乎任何時候使用引用形參都指標好, 既少了實參到形參拷貝的開消,也同樣可以操作(非const )實參。

那指標形參有沒有什麼優點呢?

1. 指標形參比引用形參更能清晰的向函式呼叫者表明函式可能會修改實引數

void f1(int * a);

void f2(int &a);

int main()

{  

int b=10;

f1(&b);

f2(b);

}

在函式定義不可知或沒有檢視函式定義時,指標形參的函式呼叫傳遞的是地址, 非常明顯的表明函式可能會修改實參。而引用形參的呼叫和普通形參的呼叫一樣,沒有這個效果

=======================================================

對於引用,有以下三條規則:

(1)引用被建立的同時必須被初始化(指標則可以在任何時候被初始化)。 
(2)不能有NULL 引用,引用必須與合法的儲存單元關聯(指標則可以是NULL)。 
(3)一旦引用被初始化,就不能改變引用的關係(指標則可以隨時改變所指的物件)。