形參,實參,按值,按引用,按指標

2021-04-07 02:17:21 字數 871 閱讀 5909

形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數.

實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數.

形參和實參的型別必須要一致,或者要符合隱含轉換規則,

當形參和實參不是指標型別時,在該函式執行時,形參和實

參是不同的變數,他們在記憶體中位於不同的位置,形參將實

參的內容複製乙份,在該函式執行結束的時候形參被釋放,

而實參內容不會改變.

而如果函式的引數是指標型別變數,在呼叫該函式的過程

中,傳個函式的是實參的位址,在函式體內部使用的也是

實參的位址,即使用的就是實參本身.所以在函式體內部

可以改變實參的值.

寫乙個交換a,b值的函式。

按值(c++):

函式宣告:  swap(x,y)

函式呼叫:   int a=5;int b=6;

swap(a,b)

注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變,a,b並沒有交換成功,要交換兩個數的值不能使用按值傳遞。

cout<引用(c++):

函式宣告:  swap(&x,&y)

函式呼叫:   int a=5;int b=6;

swap(a,b)

注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變。

cout<指標(c++):

函式宣告:  swap(*x,*y)

函式呼叫:   int *a=5;int *b=6;

swap(a,b)

注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變。

cout<

cout<

JavaScript 按值傳遞 按引用傳遞

1 值的比較 引用的比較 首先,原始值的比較是值的比較 只有在它們值相等的時候它們才相等 比如簡單的 var a1 10 var a2 10 console.log a1 a2 true 其次,物件的比較並非值的比較 物件的比較均是引用的比較,當且僅當它們引用同乙個基物件時,它們才相等。即使兩個物件...

按值傳遞和按引用傳遞

對於基本型別而言,是按值傳遞的 基本型別儲存在棧中 基本型別引數的傳遞和基本型別的複製一樣,傳遞的是值本身 var a 1 function test x test a console.log a 1按值傳遞的意思就是形參是實參的複製,形參實參互不干擾 so,雖然在函式test中a被修改,但是並沒有...

按值傳遞 vs 按指標傳遞

變數賦值有兩種方式 按值傳遞 按 指標 傳遞 指標也常稱為 引用 不同的程式語言賦值的方式不一樣,例如python是按 指標 傳遞的,go是按值傳遞的。注意,指標 加了引號,因為它不是真正的按指標拷貝,見下文分析。引數傳值其實也是變數賦值的過程,只不過引數是函式的本地變數而已。按值傳遞的意思是每次賦...