#include<cstdarg>
void ave(int count,...)
{
char *arg;//va_list arg;
va_start(arg,count);
va_arg(arg,int);
va_end(arg);
}
使用不定量参数需包含cstdarg头文件
va_list arg; 声明不定量参数列表。可用char *arg代替,效果一样
va_start是初始化,需传入形参的数量
va_arg是拿取形参的值,需传入类型。每调用一次就返回一个形参的值,并往后移一位
va_end是释放arg不定量参数列表
应用
#include<iostream>
#include<cstdarg>
void fun(int count,...)
{
va_list arg;
va_start(arg,count);
for(int i=0;i<count;i++)
{
std::cout<<va_arg(arg,int)<<std::endl;
}
va_end(arg);
}
int main()
{
fun(10,0,1,2,3,4,5,6,7,8,9);
}
运行