指標和引用作為函式傳遞引數

2021-07-11 08:04:04 字數 796 閱讀 5992

引用傳遞

void

outputnumber(

int&nnumber) 

//設定引用型別引數

intmain(

intargc, 

char

* argv)   

指標傳遞

void

outputnumber(

int*pnumber) 

//使用指標作為函式引數

intmain(

intargc, 

char

* argv)   

輸出結果是一樣的:10 20

在編寫函式時,如果函式需要採用引用方式傳遞,使用指標和引用作為引數型別都是可以的。使用指標和引用型別作為函式引數各有優缺點,視具體環境而定。對於引用型別,引

用必須被初始化為乙個物件,並且不能使它再指向其他物件,因為對引用賦值實際上是對目標物件賦值。這是引用型別的缺點,但也是引用型別的優點,因為在函式呼叫時需要驗證引用引數的合法性。例如,如果函式outputnumber採用引用引數型別,則語句"outputnumber(0);"是非法的。如果函式outputnumber採用指標型別引數,則語句"outputnumber(0);"是合法的。因為0被認為是乙個空指標,對空指標操作必然會導致位址訪問錯誤。因此對於指標物件作為函式引數,函式體中需要驗證指標引數是否為空。這

是使用指標型別作為函式引數的缺點。

但是,使用指標物件作為函式引數,使用者可以隨意修改指標引數指向的物件,這是引用型別引數所不能的。另外的區別就是上面的呼叫時用法的區別了了。引用時只需要傳遞值就行,但是指標的話需要傳遞位址。

c 中指標的引用 作為引數傳遞

我們都知道c 中的引數傳遞是值傳遞,想要通過函式修改形參,一般使用指標或者引用。那麼有時候我們對於傳入的指標位址希望做修改怎麼辦呢?今天在寫乙個樹結構的題時碰到這個問題 大概 是 void insert array treenode node,int array,int left,int right...

指標和指標的引用作為引數 c

指標和指標的引用作為引數 c 指標都清楚,存放變數位址的變數。那麼指標指向的資料是可以改變,而指標本身是不可以改變的。表示為 p 指標的引用,相當於指標的指標。作為引數傳遞時,這樣指標的數值是可以改變的,表示為 p fun int pa pa的數值在函式返回後不會變化 fun int pa pa的數...

C 引用作為函式引數

有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能。到目前為止我們介紹過函式引數傳遞的兩種情況。1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的。如果在執行函式期間形參的值發生變化,並不傳回給實參。因為在呼叫函式時,形參和實...