#include<stdarg.h>
#include<stdio.h>
int sum(int, ...);
int main(void)
{
printf("Sum of 10, 20 and 30 = %d\n", sum(3, 10, 20, 30) );
printf("Sum of 4, 20, 25 and 30 = %d\n", sum(4, 4, 20, 25, 30) );
return 0;
}
int sum(int num_args, ...)
{
int val = 0;
va_list ap; //指向参数的指针
int i;
va_start(ap, num_args); //将指针ap指向最后一个确定的参数
for(i = 0; i < num_args; i++)
{
val += va_arg(ap, int); //va_arg(),将指针ap指向可变参数的首地址
}
va_end(ap); //将指针ap赋值为NULL
return val;
}原文:http://blog.csdn.net/iluckyning/article/details/42105881