函数调用-如何设计参数 可变参数函数
#include<stdio.h>
int max(int a, int b)//形参
{
return a > b ? a : b;
}
int main()
{
int x, y;
scanf("%d%d", &x, &y);
printf("%d", max(x, y));//实际参数
return 0;
}
注意:实际参数传值给形参,传参具有方向性。
可变参数函数
/*
计算平均值*/
#include<stdio.h>
#include<stdarg.h>//可变参数函数要用到va_*的宏定义
double avg(int first, ...)//返回若干个整数平均值的函数
{
int count = 0, sum = 0, i;
va_list arg_ptr;//定义变参数列表指针
va_start(arg_ptr, first);//初始化
i = first;//取第一个参数
while (i != -1)//调用时最后一个参数必须是-1,作为结束标记
{
sum = sum + i;//累加多个整数值
count++;//计数
i = va_arg(arg_ptr, int);//取下一个参数
}
va_end(arg_ptr);//清空参数列表
return (count > 0 ? (double)sum / count : 0);//返回平均值
}
int main()
{
printf("%lf\n", avg(1, 2, 3, -1));//返回1-3的平均值
printf("%lf\n", avg(7, 8, 9, 10, -1));//同理
printf("%lf\n", avg(-1));
return 0;
}
欢迎指出代码的不足之处,我很高兴你能指出我的错误。
文档来源:51CTO技术博客https://blog.51cto.com/rjgx/3255171
页:
[1]