可變引數(VarArgs)

2021-10-03 16:48:55 字數 1144 閱讀 9821

/*

可變引數:是jdk1.5之後出現的新特性

使用前提:

當方法的引數列表資料型別已經確定,但是引數的個數不確定,就可以使用可變引數.

使用格式:定義方法時使用

修飾符 返回值型別 方法名(資料型別...變數名){}

可變引數的原理:

可變引數底層就是乙個陣列,根據傳遞引數個數不同,會建立不同長度的陣列,來儲存這些引數

傳遞的引數個數,可以是0個(不傳遞),1,2...多個

*/public class demo01varargs

/*可變引數的注意事項

1.乙個方法的引數列表,只能有乙個可變引數

2.如果方法的引數有多個,那麼可變引數必須寫在引數列表的末尾

*//*public static void method(int...a,string...b)*/

/*public static void method(string b,double c,int d,int...a)*/

//可變引數的特殊(終極)寫法

public static void method(object...obj)

/*定義計算(0-n)整數和的方法

已知:計算整數的和,資料型別已經確定int

但是引數的個數不確定,不知道要計算幾個整數的和,就可以使用可變引數

add(); 就會建立乙個長度為0的陣列, new int[0]

add(10); 就會建立乙個長度為1的陣列,儲存傳遞來過的引數 new int;

add(10,20); 就會建立乙個長度為2的陣列,儲存傳遞來過的引數 new int;

add(10,20,30,40,50,60,70,80,90,100); 就會建立乙個長度為2的陣列,儲存傳遞來過的引數 new int;

*/public static int add(int...arr)

//把求和結果返回

return sum;

}//定義乙個方法,計算三個int型別整數的和

/*public static int add(int a,int b,int c)*/

//定義乙個方法,計算兩個int型別整數的和

/*public static int add(int a,int b)*/

}

varargs 方法的非 varargs 呼叫

警告 最後乙個引數使用了不準確的變數型別的 varargs 方法的非 varargs 呼叫 j ac 對於 varargs 呼叫,應使用 j a.lang.object method method cls.getmethod methodname new class 0 編譯通過 method me...

可變引數列印 解析可變引數

1.的一般用法 define str s s define cons a,b int a e b int main 2.接受,列印可變引數 參考 glibc庫的bebug函式 define printf fmt,args.printf fmt,args 使用方法 define pr debug fm...

可變引數 函式 可變引數列表 1

我們在c語言程式設計中有時會遇到一些引數個數可變的函式,即函式的入參個數和型別是不確定的,例如printf 函式,其函式原型為 int printf char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是可變的 用三個點 做引數佔位符 實際呼叫時可以有以下的形式 p...