C 函式引數 值傳遞與引用傳遞

2021-09-26 02:29:40 字數 684 閱讀 4406

以前我們在c語言中函式引數傳遞過程中,如果我們想要讓當a函式作用域中的變數經過b函式處理之後的數值仍然在a函式中生效,這個時候函式引數的傳遞時需要引用方式去傳遞,方式如下:

#include

//函式引數為指標,通過修改指標裡面的內容達到對main中b變數的修改

void

func

(int

*a)int

main()

編譯執行,結果如下

value is 10

from main and b is 20

c++通同樣需要如此,只是語法有部分差異,同時當類的例項作為函式時又會有額外的拷貝構造過程消耗記憶體,此時需要進行引用傳遞來減少拷貝構造,通過std::ref進行引用傳遞。如果進行值傳遞,之間將定義類型別的變數傳入即可。

如下**:

#include

#include

class factor};

intmain()

編譯g++ -std=c++11 ref.cc -o ref -lpthread

結果如下

value is i am a value

from main value is i am changed

JS中函式引數值傳遞和引用傳遞

也許大家對於函式的引數都不會太在意,簡單來說,把函式外部的值複製給函式內部的引數,就和把值從乙個變數複製到另乙個變數一樣。深入研究,你會發現其實沒那麼簡單,這個傳參是要分倆種情況 其實這是個錯誤的說法,ecmascript中所有函式的引數都是按值傳遞的 高程3 原話,之所以這裡說倆種,是因為結合引用...

JS中函式引數值傳遞和引用傳遞

自 1 按值傳遞 1 function addten num 5 6 var count 20 7 var result addten count 按值傳遞 num count 8 alert count 20,沒變化 9 alert result 30 很好理解,因為是按值傳遞的,傳遞完後倆個變數...

python中函式值傳遞與引用傳遞

簡單理解,值傳遞就是在乙個引數傳入到函式中後,函式中對該引數的操作不會影響函式外該引數的變數的值 而引用傳遞,則是引數傳遞進來的相當於記憶體位址,對該引數的操作會直接影響到外部指向其值的變數。python中的變數沒有型別,變數相當於乙個指標,可以指向任何型別的物件,也就是變數引用了某個物件 pyth...