引用傳遞
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 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的。如果在執行函式期間形參的值發生變化,並不傳回給實參。因為在呼叫函式時,形參和實...