傳值:
void myswap(int a, int b)
傳指標(1):
void myswap(int *a, int *b)
(2)
void myswap(int *a, int *b)
引用傳遞:
void myswap(int &a, int &b)
函式傳值:傳值實際上是在子函式的棧裡面重新開闢乙個空間儲存傳進來的實參引數值,所以在子函式內對子函式的形參引數進行操作(賦值之類的)只是改變了子函式那個棧裡面的記憶體值,原函式的值並不會被改變,因為原函式的變數記憶體並未改變。
指標傳值:情況1,原函式指標指向的值並沒有發生改變,對兩個指標操作相當於改變了本函式內的指標, 並沒有改變原函式的指標值。情況2,通過對指標指向的記憶體進行修改可以改變原函式指標所指向的記憶體值。(指標傳遞的本質是值傳遞,只是傳遞的是指標的值罷了)。
引用傳值:在引用傳遞的過程中,被調函式的形式引數雖然也作為區域性變數在棧中開闢了記憶體空間,但是這時存放的是由主調函式放進來的實參變數的位址。被調函式對形參的任何操作都被處理成間接定址,即通過棧中存放的位址訪問主調函式中的實參變數。
傳值和傳引用 傳指標的區別
傳值,是把實參的值賦值給行參,那麼對行參的修改,不會影響實參的值 傳位址,是傳值的一種特殊方式,只是他傳遞的是位址,不是普通的如 int,那麼傳位址以後,實參和行參都 指向同乙個物件 傳引用,真正的以位址的方式傳遞引數,傳遞以後,行參和實參 都是同乙個物件 只是他們名字不同而已,對行參的修改將影響實...
函式傳值 傳指標和傳引用區別
函式傳值 傳值實際上是在子函式的棧裡面重新開闢乙個空間儲存傳進來的實參引數值,所以在子函式內對子函式的形參引數進行操作 賦值之類的 只是改變了子函式那個棧裡面的記憶體值,原函式的值並不會被改變,因為原函式的變數記憶體並未改變。指標傳值 情況1,原函式指標指向的值並沒有發生改變,對兩個指標操作相當於改...
傳值 傳引用 傳指標
收藏 相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資...