1. 程式人生 > >指標和引用作為形參的區別

指標和引用作為形參的區別

        引用做函式的形參:在函式內部,對這個形參做任何操作,相當於對實參做相同的操作。

        指標做函式的形參:在函式內部,只有在這個形參的值沒有變化的情況下,對其所指向的內容做任何操作,才相當於對實參所指向內容做的操作。而對這個指標本身做的操作只是這個形參(實參的副本)自己有變化,而不會影響實參指標,也不會影響實參所指內容。比如給這個形參做算術運算、用malloc在堆中動態分配記憶體等,只是這個指標的值變了,那麼它指向的記憶體也就和實參所指記憶體不同了。

       PS:引用在定義時不可加const,否則編譯出錯,在形參前面則可以加const以確保在函式中該變數不會被修改。

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