C可变参数

it2025-03-04  22

C 可变参数

概要:

帮助函数提供可变参数,而不是预定义的参数

int func(int,...){ //传递int类型的参数 . . . } int main() { func(1,2,3); func(1,2,3,4); }

需要头文件 stdarg.h

###步骤:

创建函数参数为省略号,可设置自定义参数;在函数中创建一个va_list类型的变量;使用int参数和va_start宏来初始化va_list变量为一个参数列表;使用va_arg宏和lva_list来访问列表中的每个项; -使用宏va_end来清理赋予va_list变量的内存

案例

#include <stdio.h> #include <stdarg.h> double average(int num,...) { va_list valist; double sum = 0.0; int i; /* 为 num 个参数初始化 valist */ va_start(valist, num); /* 访问所有赋给 valist 的参数 */ for (i = 0; i < num; i++) { sum += va_arg(valist, int); } /* 清理为 valist 保留的内存 */ va_end(valist); return sum/num; } int main() { printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5)); pri

结果

Average of 2, 3, 4, 5 = 3.500000 Average of 5, 10, 15 = 10.000000 sandbox> exited with status 0

来源于牛客网教程

最新回复(0)