C 中引數陣列 引用引數和輸出引數示例詳解

2022-09-27 02:24:09 字數 1299 閱讀 7022

前言

引數陣列

在c#中,可以為函式指定乙個不定長的引數,這個引數是函式定義中的最後乙個引數,這個引數叫做引數陣列。

下面是乙個例子:

namespace ch6ex2

return sum;

} static void main(string args)

");console.readkey();

} }}

函式sumvals有乙個引數陣列,即vals,在定義該引數時,需要使用params引數。在呼叫該函式時,可以給引數輸入傳入多個實參。

使用分布式傳參時,編譯器做如下事:

1)接受實參列表,用它們在堆中建立並初始化乙個陣列。

2)把陣列的引用儲存到棧中的形參裡。

3)如果在對應的形引數組的位置沒有實參,編譯器會建立乙個有零個元素的陣列來使用。

4)如果陣列引數是值型別,那麼值被複製,實參不受方法內部的影響。

5)如果陣列引數是引用型別,那麼引用被複製,實參引用的物件可以受到方法內部的影響。

在使用陣列式傳參時,編譯器使用你的資料而不是重新建立乙個。即相當引用引數。

引用引數

可以通過引用傳遞引數,需要使用ref關鍵字。

下面是乙個例子:

namespace myprogram

static void main(string args)

, b = ");

swapints(ref a, ref b);

console.writeline($"a = , b = ");

console.readkey();

} }}

這是乙個簡單的交換兩個值的程式,由於函式swapints使用了引用引數,所以可以在函式中修改變數a和b的值,需要注意的是,在呼叫函式時也要使用ref傳遞引用引數。

輸出引數

輸出引數使用out關鍵字,它的效果與引用引數幾乎相同,不同點是:

下面是乙個例子:

namespace myprogram

} return maxvalue;

} static void main(string args)

; int maxvalue = maxvalue(intarray, out maxindex);

console.writeline($"maxvalue = , maxindex = .");

console.readkey();

} }}

這個函式將乙個陣列中最大值的索引作為輸出引數,返回最大值。

總結本文標題: c#中引數陣列、引用引數和輸出引數示例詳解

本文位址:

C 值引數 引用引數和輸出引數

一 值引數 在使用引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不會影響函式呼叫中指定的引數。由於函式只有乙個返回值,不能用作引數的多個變數值 二 引用引數 即函式處理的變數與函式呼叫中使用的變數相同,而不僅僅是值相同的變數。因此,對這個變數的任何改變都會影響用作引數的變數值...

C 引數陣列與陣列引數

1 陣列作為引數來傳遞時,當呼叫這個函式時裡面的引數需要new乙個陣列 2 引數陣列就是在函式的陣列引數前面加上params,當呼叫函式傳遞陣列時不需要再new乙個,只需要傳遞任意個跟陣列引數型別相同的數就可以 using system namespace 1 引數陣列 return sum sta...

C 引數陣列

引數陣列,通過關鍵字params定義引數陣列,paras型別引數主要用於在對陣列長度未知 可變 的情況下進行函式宣告,呼叫時可以傳入個數不同的實參,具備很好的靈活性。首先給出乙個具體的例子介紹引數陣列 params 的具體用法,首先定義乙個帶有引數陣列的方法 using system public ...