#include<stdio.h>#include<stdarg.h>int average(int n,...)
{
va_listarg;
int i = 0;
intsum = 0;
va_start(arg,n);
for(i=0;i<n;i++)
{
sum += va_arg(arg,int);
}
returnsum/n;
va_end(arg);
}
int main()
{
int a = 1;
int b = 2;
int c = 3;
intavg = average(3,a,b,c);
printf("avg = %d\n", avg);
return0;
}
例子:实现一个函数可以在任意参数中求最大值
#include<stdio.h>
#include<stdarg.h>
int Find_max(int n,...)
{
int tmp = 0;
int i = 0;
intmax = 0;
va_list arg;
va_start(arg,n);
max = va_arg(arg,int);
for(i = 0;i<n-1;i++)
{
tmp = va_arg(arg,int);
if(tmp>max)
{
max = tmp;
}
}
va_end(arg);
returnmax;
}
int main()
{
int Max = 0;
Max = Find_max(6,-1,6,5,0,12,7);
printf("%d\n", Max);
return0;
}