![]() |
#2
rjsp2022-10-14 14:35
|

#include <stdio.h>
#include <stdarg.h>
double average(int num,...)
{
va_list valist;
int sum = 0.0;
int i;
/* 为 num 个参数初始化 valist */
va_start(valist, num);
/* 访问所有赋给 valist 的参数 */
for (i = 0; i < num; i++)
{
sum = va_arg(valist, int);
printf("sum = %d\n", sum);
}
/* 清理为 valist 保留的内存 */
va_end(valist);
return sum/num;
}
int main()
{
printf("Average of 2, 3, 4, 5 = %d\n", average(4, 2,3,4,5));
}
问题:
1、va_list valist; 其中的 valist; 是变量吧?
2、printf("Average of 2, 3, 4, 5 = %d\n", average(4, 2,3,4,5)); 打印后,它的值怎么会是 “Average of 2, 3, 4, 5 = 4202508” ? 这个4202508怎么出来的?