ref和out 傳遞引數 C

2021-09-06 23:16:00 字數 2236 閱讀 6906

1.引數傳遞預設都是傳遞棧空間裡面儲存的內容

2.如果新增了ref那麼傳遞的都是棧空間位址,而不再是棧空間裡面的內容

3.如果新增了out,那麼傳遞的也是棧空間的位址

1

//寫乙個方法計算乙個int型別陣列中每個元素的總和以及最大值和最小值

2///

3///

4///

5///

6///

7static

void gatvalue(int intarray, ref

int sum, ref

int max, ref

intmin)823

24//

最小值25

if (min >intarray[i])

2629

}30 }

view code

1

static

void main(string

args)2;

4int sum = 0, max = 0, min = 0;5

//int sum = 0, max = 0, min;

//如果min變數在使用的時候,沒有賦值,在使用ref關鍵字傳遞引數的時候,就會報錯,錯誤訊息:「使用了未賦值的區域性變數」

6 gatvalue(intarray, ref sum,ref max,ref

min);

7 console.write(sum+"

"+max+"

"+min);

8console.readkey();

9 }

mian函式

1

static

void main(string

args)2;

4//int sum = 0, max = 0, min = 0;

5int sum = 0, max = 0

, min;

6 gatvalue(intarray, ref sum,ref max,out

min);

7 console.write(sum+"

"+max+"

"+min);

8console.readkey();9}

1011

1213

static

void gatvalue(int intarray, ref

int sum, ref

int max, out

intmin)

1429

30//

最小值31

if (min >intarray[i])

3235

}36 }

min變數out傳遞引數

1

static

void gatvalue(int intarray, ref

int sum, ref

int max, out

intmin)217

18///

/最小值

19//

if (min > intarray[i])

20//23}

24}2526

2728

static

void main(string

args)29;

31//

int sum = 0, max = 0, min = 0;

32int sum = 0, max = 0

, min;

33 gatvalue(intarray, ref sum,ref max,out

min);

34 console.write(sum+"

"+max+"

"+min);

35console.readkey();

36 }

錯誤的例子,out引數在使用的時候,必須在方法體內,為變數賦值

這裡第四個**段,裡面,使用了out引數傳遞的變數min,在方法體內沒有被賦值,執行的時候會報錯:「 控制離開當前方法之前必須對 out 引數「min」賦值 「

區別:ref傳遞的引數必須先賦值再使用;

out可以賦值也可以不賦值,但是在方法體內必須重新賦值。

ref引數和out引數

引數對於每個學習程式設計的人都很清楚,在任何程式中都不可能沒有引數,下面我就說說乙個特殊的引數型別,其實這個也不算什麼特殊引數了,在c 中已經沒有像c中那樣的指標的概念了,但是有的時候有些時候要寫特殊的處理,其實c 中並不是完完全全放棄這個概念的,下面就寫下這類特殊的引數。引用引數ref 當乙個引數...

C 的out引數和ref引數

剛學c 的時候看過out引數和ref引數的用法,但是一直沒有根據實際專案做過。今天寫webservice介面的時候用到了 本來我是寫乙個方法查詢乙個資料庫,返回乙個dataset給別人呼叫,沒問題,完成了 我的上篇部落格寫有 但是專案總是變化 的,有人要求同時將dataset的總記錄條數也返回給他們...

C 使用ref和out傳遞陣列

c 使用ref和out傳遞陣列 一 使用ref引數傳遞陣列 陣列型別的ref引數必須由呼叫方明確賦值。因此,接受方不需要明確賦值。接受方陣列型別的ref引數能夠修改呼叫方陣列型別的結果。可以將接受方的陣列賦以null值,或將其初始化為另乙個陣列。請閱讀引用型引數。示例 在呼叫方法 main方法 中初...