例子45-1:函數
#include <stdio.h> float average(int array1[],int size) { int i = 0; float avr = 0; for(i = 0;i < size; i ++) { avr += array1[i]; } return avr/size; } int main() { int array1[] = {1,2,3,4,5}; printf("%f\n",average(array1,5)); }
輸出結果:設計
3.000000
C語言中能夠定義參數可變的函數
參數可變函數的實現依賴於stdarg.h頭文件
va_list-參數集合
va_arg-取具體參數值
va_start-表示參數訪問的開始
va-end-標識參數訪問的結束
例子45-2:code
#include <stdio.h> #include "stdarg.h" float average(int n,...) { va_list args; //可變參數集合 int i = 0; float sum = 0; va_start(args,n); //可變參數訪問開始 for(i = 0;i < n; i ++) { sum += va_arg(args,int); //從va_arg取具體參數值,取n個 } va_end(args);//參數已經取完了 return sum/n; } int main() { printf("%f\n",average(5,1,2,3,4,5)); printf("%f\n",average(4,1,2,3,4)); return 0; }
輸出結果:開發
3.000000 2.500000