C 之傳值呼叫和引用呼叫

2021-06-26 13:33:27 字數 865 閱讀 5278

如果希望函式能夠改變某變數的值,那麼相應的形參一定要是引用呼叫引數。因此必須在引數型別後面加上「&」符號。傳值呼叫形參只是乙個區域性變數。當一組資料需要多個函式處理時候,也要用引用呼叫。

到目前為止我們一直使用傳值呼叫形參,函式呼叫裡的相應的形參可以是乙個變數,但函式只使用該變數的值,而且不能以任何方式改變這個變數。使用傳值呼叫時,替代形參的只有實參的值。

對於乙個輸入函式,我們希望用變數(而不是變數值)來替代形參。---引用呼叫機制正是用來解決這類問題的。

借助引用呼叫形參,函式呼叫中的相應實參必須是變數,且這個實參變數將代替形參,就好象是將實參變數逐字逐句賦值到函式定義的函式體中,取代了形參。執行函式體的**,就可以改變實參變數的值。

#include using namespace std;

void getnumer(int& input1, int& input2)

void swapvalues(int& var1, int& var2)

void shownunber(int output1, int output2)

{ cout<<"the swaped numebrs now show are:"<

firstval       ---> 1010 --->input1

secondval  ---> 1012 --->input2

不管函式體對形參進行什麼操作,其實都是對記憶體單元中的變數進行操作。在本例,getnumber()函式體中的命令表示應該使用

cin將某個值存在input1中,也相當於將該值儲存在記憶體單元1010的變數(恰好是變數firstval)中。因此不管計算機對input1和input2進

行什麼操作,都其實是對變數firstval和secondval進行的操作。 

C 之傳值呼叫和引用呼叫

如果希望函式能夠改變某變數的值,那麼相應的形參一定要是引用呼叫引數。因此必須在引數型別後面加上 符號。傳值呼叫形參只是乙個區域性變數。當一組資料需要多個函式處理時候,也要用引用呼叫。到目前為止我們一直使用傳值呼叫形參,函式呼叫裡的相應的形參可以是乙個變數,但函式只使用該變數的值,而且不能以任何方式改...

傳值呼叫和引用呼叫

值呼叫是指當發生函式呼叫時候,給形參分配記憶體空間,並用實參來初始化形參 直接將實參的值傳遞給形參 這一過程是引數值的單向傳遞過程,一旦形參獲得了值,便於實參脫離了關係,此後無論形參發生了什麼變化,都不影響實參了.引用呼叫將引用作為形參,在執行主調函式中的呼叫語句時候,系統自動用實參來初始化形參.這...

引用呼叫和傳值呼叫

1.傳值呼叫又分為資料傳值呼叫和位址傳值呼叫。資料傳值呼叫方式是將實參的資料值傳遞給形參。實參和形參在棧空間內的位址不相同,改變形參值不影響實參值 位址傳值呼叫方式是將實參的位址值傳遞給形參,實參和形參在棧空間內共用同一位址,改變形參值就可改變實參值。2.引用呼叫是將實參變數值傳遞給形參,而形參是實...