C 方法中的引數型別

2022-08-28 08:18:09 字數 2224 閱讀 1295

二、方法中的引數型別

1. 值引數

值引數是指不帶修飾符只帶資料型別的形參。

值引數在使用值向方法傳遞引數時,編譯程式會把實參的值做乙份拷貝,並且將此拷貝傳遞給該方法,被呼叫的方法不會修改記憶體中實參的值。

呼叫該方法時,系統會為每乙個值型別的形參分配乙個新的記憶體空間,然後將對應的實參的表示式運算的值複製到該記憶體空間中。

示例:using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

static void main(string args)

、b = ", i, j);

swap(i, j);

console.writeline("呼叫swap之後:a = 、b = ", i, j);

console.readline();}}

}執行結果:

呼叫swap之前:a = 1、b = 2

呼叫swap之後:a = 1、b = 2在呼叫swap方法前後,實參變數i和j的值並沒有交換,這說明在方法中更改引數的值不會影響到這個方法之外的變數。

2. 引用型引數

引用型引數是指帶ref修飾符的形參。

當使用引用型引數向方法傳遞形參時,實際上傳遞的是指向原變數的指標,即引用引數和原變數儲存的是同乙個位址,這樣,在方法中對引數所做的任何修改都會改變原變數的值。

示例:using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

static void main(string args)

、b = ", i, j);

swap(ref i, ref j);  // 呼叫swap方法時,要對實參使用ref修飾符

console.writeline("呼叫swap之後:a = 、b = ", i, j);

console.readline();}}

}執行結果:

呼叫swap之前:a = 1、b = 2

呼叫swap之後:a = 2、b = 1在呼叫swap方法前後,實參變數i和j的值進行了交換,這說明在使用形參為引用型引數的方法中,改變引數的值會影響到這個方法之外的變數。

3. 輸出引數

輸出引數是指帶out修飾符的形參。

out修飾符表示該引用引數是用於輸出的,而且呼叫該引數時不需要對引數進行初始化。輸出型引數用於傳遞方法返回的資料。

與引用型引數類似,輸出型引數也不開闢新的記憶體空間。

示例:using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

public int myclass(out int c)   // 輸出引數

}static void main(string args)

",d);

console.writeline("返回引數的值:c = ", c);

console.readline();}}

}執行結果:

執行方法得到的返回值:d = 9

返回引數的值:c = 20使用out關鍵字可以根據需要返回多個值。其中d使用的是方法的返回值,而c使用的使用的是out引數的返回值。

4. 陣列型引數

陣列型引數是指帶params修飾符的形參。

如果形參表中包含了陣列型引數,則該陣列型引數在列表中必須位於最後,而且它必須是一維陣列型別,比如,型別string和string都可以作為陣列型引數,而string[,]則不能。

注意:陣列型引數不能有ref和out修飾符。

示例:using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace test

return msg;

}static void main(string args)}}

執行結果:

liping

liping hi

liping hi how are you?

C 方法中的引數型別

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 0207 方法中的引數型別 static void mai...

C 中方法引數的型別

c 方法引數型別有三種 根據傳遞方式不同分為值傳遞和引用傳遞 值傳遞的本質是在傳遞引數時是把實參裡面存的值傳遞給方法的形參,方法中對形參改變量值不會影響原來實參裡面的資料。輸出結果為0 引用型別傳遞的本質是 實參是引用型別儲存的是位址值,傳遞時是將實參中的位址傳遞給形參,這個時候形參中儲存的是位址值...

C 方法中引數型別後帶問號

有的時候,我們會看到這樣的 方法的引數型別後面有個?這是什麼意思呢?其實很簡單,我們來看個例子 我們都知道 vector3 這個型別的引數是不允許 null 的,這裡編譯器也提示我們了,看圖中紅色的波浪線那裡。然後我們稍稍對 進行一下更改來看看。對,我們在型別的後面加上乙個 這個時候編譯器的錯誤提示...