C 函式的引數傳遞

2021-07-02 15:53:27 字數 887 閱讀 4275

一、函式未被呼叫前,函式的形參並不占有實際的記憶體空間,也沒有被賦值。只有在被呼叫的時候,才被賦值。函式引數傳遞指的就是形參和實參想結合的過程。

二、函式引數傳遞存在兩種形式:

1、值傳遞:

即函式在發生呼叫時,給形參分配記憶體空間,直接以實參的值初始化形參。函式被賦值後,實參和形參即沒有關係,形參的改變不影響到實參。

函式傳遞是實參的值,是單向傳遞過程。形參值的改變對實參不起作用。

2、引用傳遞:把引用作為形參,在函式呼叫時發生的引數傳遞,成為引用傳遞。

通過引用名與通過被引用的變數名訪問變數的效果是一樣的。

形參的初始化不在型別說明時進行,而是在呼叫函式表示式時才為形參分配記憶體空間,同時用實參來初始化形參。這樣引用的型別就是通過形參實參想結合,成為了實參的乙個別名,對形參的任何操作都會作用於實參

注意事項:1、宣告乙個引用時,必須同時對他進行初始化,使他指向乙個已存在的物件。

2、一旦乙個引用被初始化後,就不能指向其他物件。也就是說,乙個引用,從他誕生之時起,必須確定是哪個變數的別名,不能另作它用。

三、引用傳遞和值傳遞的區別只是函式的形參寫法不同。主調函式的呼叫表示式是完全一樣的。

附**#include

#include

using namespace std;

void fiddle(int in1, int &in2);

void main()

{ int count = 7, index = 12;

cout << "the values are ";

coutcout << "the values are ";

coutin2 = in2 + 100;

cout << "the values are ";

cout

C 函式的引數傳遞

所有的函式都使用 在程式執行棧中分配的儲存區。該儲存區一直保持與該函式相關聯,直到函式結束為止。那時,儲存區將自動釋放以便重新使用。該函式的整個儲存區稱為活動記錄。系統在函式的活動記錄中為函式的每個引數都提供了儲存區,引數的儲存長度由它的型別來決定。引數傳遞是指用函式呼叫的實參值來初始化函式引數儲存...

c 函式的引數傳遞

搜 函式的引數傳遞 很多時候看到的是函式的三種傳遞方式 那麼這三種引數傳遞方式有沒有什麼共同點呢?或者說它們的實質到底是怎樣的呢?1 寫乙個帶有引數的函式返回值型別 函式名 形參列表 那麼形參列表怎麼寫呢?其實我們可以按照 定義乙個變數的寫法 來寫形參列表,什麼意思呢?定義乙個int型變數 為 in...

c 函式引數傳遞

void reset int num void creset const int num void preset int p void cpreset const int p void rreset int arr 10 void initiaresert initializer listlist ...