#include <stdio.h>
#include <stdarg.h>
//...代表可变参数,省略号前的int n代表要传递的可变参数的个数
float average(int n, ...)
{
//va_list声明一个vz_list变量args,用于访问参数列表的未确定部分
va_list args;
int sum = 0;
int i = 0;
//va_start的作用是是初始化args为指向未知参数列表第一个参数的地址
//它的第一个参数是va_list的变量名,第二个参数就是省略号前最后一个
//有名字的参数
va_start(args,n);
for (i= 0; i < n; i++)
{
//不要在va_arg中指定了错误的类型,否则结果不可预测
sum += va_arg(args,int);
}
//va_end把args指针置为空指针
va_end(args);
return sum/n;
}
int main()
{
float ret = 0.0;
ret = average(5,1,2,3,4,5);
printf("%.2f\n",ret);
return 0;
}