傳值方式
#include
void
swap
(float m,
float n)
以上**將實參的值傳送形參,當被呼叫函式執行完畢時,m和n從記憶體中釋放。a和b的值沒有發生任何變化。。即形參發生變化不影響實參。
傳位址方式(形參變化影響實參)
#include
void
swap
(float
*m,float
*n)
以上程式交換了a和b的值
形參變化不影響實參
#include
void
swap
(float
*m,float
*n)``
以上程式m指向b,n指向a,但是對a,b的值沒有影響。
3. 傳位址方式(陣列名作引數)
- 傳遞的是陣列的首位址
- 對形引數組所做的任何改變都將反映到實參陣列中
```cpp
#include
void
sub(
char b)
void
main
(void
)
舉例:用陣列作函式的引數,求10個整數的最大數
#include
#define n 10
intmax
(int a)
;void
main()
intmax
(int b)
傳位址方式(引用型別作引數)
#include
void
swap
(float
&m,float
&n)
如 int &j=i,j是乙個引用型別,代表i的乙個替代名,i值改變時,j也跟著改變。
引用型別作形參的三點說明:
1.傳遞引用給函式與傳遞指標的效果是一樣的,形參變化實參也發生改變。
2.引用型別作形參,在記憶體中並沒有產生實參的副本,他直接對實參操作;而一般變數作引數,形參與實參就占用不同的儲存單元,所以形參變數的值是實參變數的副本。因此,當引數傳遞的資料量較大時,用引用比用一般變數傳遞引數的時間和空間效率都好。
3.指標引數雖然也能達到與使用引用的效果,但在被調函式中需要重複使用「*指標變數名」的形式進行運算,這很容易產生錯誤且程式的閱讀性較差;另一方面,在主調函式的呼叫點處,必須用變數的位址作為實參。
C 中的引數傳遞
c 中的引數傳遞,根據引數的型別可以分為四類 在預設情況下,clr方法中引數的傳遞都是按值傳遞 對於引數又分為 形參 被呼叫方法中的引數,實參 呼叫方法的引數 class program addnum就是形參,也就是被呼叫方法中的引數 private static void add int addn...
C 函式中引數的傳遞
2 34 include stdafx.h 5 include 6 7using namespace std 89 值傳遞 10void swap1 int p,int q 11 1718 指標傳遞,函式體內只有指標值的變化 19void swap2 int p,int q 2026 27 指標傳遞...
C 中陣列引數傳遞
include 傳遞陣列引數的幾種方式 void printvalues const int a 10 void printvalues2 int a 10 控制邊界 方法1 void printvalues4 int start,int end void printvalues5 const in...