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

2022-03-02 21:50:06 字數 901 閱讀 1264

一、值引數:在使用引數時,是把乙個值傳遞給函式使用的乙個變數。對函式中此變數的任何修改都不會影響函式呼叫中指定的引數。(由於函式只有乙個返回值,不能用作引數的多個變數值)。

二、引用引數:即函式處理的變數與函式呼叫中使用的變數相同,而不僅僅是值相同的變數。因此,對這個變數的任何改變都會影響用作引數的變數值。需用ref關鍵字指定引數。用作ref引數的變數有兩個限制,由於函式可能會改變引用引數的值,所有必須在函式呼叫中使用「非常量」變數。其次,必須使用初始化過的變數。

三、輸出引數:out關鍵字,指定所給定的引數是乙個輸出引數。out關鍵字的使用方式與ref關鍵字相同,實際上,他的執行方式與引用引數完全一樣,因為在函式執行完畢後,該引數的值將返回給函式呼叫中使用的變數。

四、引用引數和輸出引數的一些重要區別:

把未賦值的變數用作ref引數是非法的,但可以把未賦值的變數用作out引數。

另外,在函式使用out引數時,必須把它看成是尚未賦值。即呼叫**可以把已賦值的變數用作out引數,但儲存在該變數中的值會在函式執行時丟失。

下面通過三個方法分別對三種引數傳遞進行說明:

static

void amethod(int i)//

值傳遞

static

void bmethod(ref

int i)//

引用傳遞

static

void cmethod(out

int i, out

string j)//

輸出傳遞

static

void main(string

args)

結果如下顯示:

C 值引數和引用引數

未用ref或out修飾符宣告的引數為值引數。使用值引數,通過將實參的值複製到形參的方式,把資料傳遞到方法。方法被呼叫時,系統做如下操作。值引數的實參不一定是變數。它可以是任何能計算成相應資料型別的表示式。看乙個例子 float func1 float val 宣告方法 下面來呼叫方法 float f...

C 方法引數 值引數,引用引數,輸出引數

使用值引數,通過複製實參的值到形參的方式,把資料傳遞到方法,方法被呼叫的時候,系統做如下操作 在棧中為形參分配空間 複製實參到形參。注意 乙個值引數的實參不一定是變數,它可以是任何能夠計算成相應資料型別的表示式。在把變數用作實參之前,變數必須被賦值 除非是輸出引數,這個稍後介紹 對於引用型別,變數可...

形參,實參,值引數,引用引數

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace deledemo class program static...