C 函式 委託和可變引數

2021-08-14 17:08:05 字數 1188 閱讀 7999

using system;

//! 1

public void max()

//! 3

public int max(int a, int b)

public double max(double a, double b)

static void main(string args)}}

1、定義函式 max

2、由於已經使用關鍵字 return 返回,所以後面的**將不會執行

3、過載函式 max,過載時必須使用與已經定義的函式不同的引數。過載的函式編譯器會自動匹配對應的函式

4、使用在類 program 定義的函式 max

5、定義委託型別,類似於c的函式指標

6、建立委託變數並且初始化為 program類的max(int,int)

7、使用委託呼叫函式

函式定義語法:

返回型別 名稱(引數列表)

如果返回值型別為 void 那麼可以不寫 return 語句

delete 返回型別 名稱(引數列表);
委託變數必須初始化後才能呼叫,不然會丟擲異常

如果引數數量不是固定的那麼可以使用關鍵字 params 宣告乙個可變引數陣列

using system;

public static int max(int value, params int values)

return max;

}public static void show(params object values)

static void main(string args)}}

可變引數陣列必須準守以下幾點:

1、若形參表中含乙個可變引數陣列,則該可變引數陣列必須位於形參列表的最後

2、可變引數陣列必須是一維陣列

3、不允許將params修飾符與ref和out修飾符組合起來使用

4、與可變引數陣列對應的實參可以是同一型別的陣列名,也可以是任意多個與該陣列的元素屬於同一型別的變數

5、若實參是陣列則按引用傳遞,若實參是變數或表示式則按值傳遞

當然如果你想要引數接收看上去不同型別的引數可以使用object作為引數型別

其使用結果就像上面的show函式一樣

C 引數可變函式

前幾天突然想到,c 中有關不定引數的函式平時沒有用過,查了一下該怎麼寫,記錄下來以免以後忘記。int sum int count,int sum 0 va list args va start args,count for int i 0 i其中,第乙個引數count表示後面引數個數,可以理解為 代...

C語言函式可變引數

翻apue的時候,看到了一組可變引數的巨集就是va list 類似 void print arg int count,1 va list變數 ifdef m alpha typedef struct va list else typedef char va list 這個 endif 2 intsi...

C可變引數的函式

有的時候函式的引數個數在呼叫的時候才確定,這時函式的引數為可變引數 使用可變引數時用到的幾個庫函式 void va start va list arg ptr,prev param type va arg va list arg ptr,type void va end va list arg pt...