C 中的引數傳遞

2021-10-17 20:54:35 字數 1334 閱讀 3650

傳值方式

#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...