立即学习:https://edu.csdn/course/play/10534/380018?utm_source=blogtoedu
#include <stdio.h>
#include <stdarg.h>
// 固定参数列表
int avg1(int a, int b, int c, int d) {
return (a + b + c + c) / 4;
}
// 数组
int avg2(int a[], const size) {
int i = 0;
int sum = 0;
for (i = 0; i < size; i++) {
sum += a[i];
}
return sum / size;
}
// 可变参数列表
int avg3(int num, ...) {
va_list valist;
int i = 0;
int sum = 0;
// 为参数a初始化valist
va_start(valist, num);
// 访问所有在valist中的参数
// 可变参数的类型需要一致
for (i = 0; i < num; i++) {
sum += va_arg(valist, int);
}
va_end(valist);
return sum / num;
}
// 求一系列整数的平均数
int main() {
int a[] = { 1, 2, 3, 4, 5 };
printf("avg1: %d\n", avg1(1, 2, 3, 4));
printf("avg2: %d\n", avg2(a, sizeof(a)/sizeof(int)));
printf("avg3: %d\n", avg3(5, 1, 2, 3, 4, 5));
printf("avg3: %d\n", avg3(6, 1, 2, 3, 4, 5, 100));
return 0;
}
更多推荐
学习笔记(90):C语言入门到精通-可变参数函数
发布评论