/*
C语言中可以定义参数可变的函数
参数可变函数的实现依赖于stdarg.h头文件
va_lish变量与va_start,va_end和va_arg配合使用能够访问参数值
可变参数的限制
可变参数必须从头到尾按照顺序逐个访问
参数列表里面至少要存在一个确定的命名参数
可变参数宏无法判断实际存在的参数的熟练
可变参数无法判断参数的实际类型
小结
可变参数是C语言提供的一种函数设计技巧
可变参数的函数提供了一种更方便的函数调用方式
可变参数必须顺序的访问
无法直接访问可变参数列表中间的参数值
*/
#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_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));
}
07-21
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交