例如,一个函数可以使用无限(或更确切地说,非常大的数量)相同类型的参数,让我们说整数,然后使所有传递的整数的值为5
我要问的是,如果可以,我可以使用非固定数量的参数来制作函数。
void setIntToFive(UNKNOWN AMOUNT OF INTS){
//a for loop to assign a value to all the passed arguments
}
然后每次用不同数量的参数调用它
int a;
int b = 5;
setIntToFive(a,b);
int c;
setIntToFive(a,b,c);//Notice how i add another argument.
那么,有没有一种方法可以做到这一点,除了使参数成为一个数组。(我认为它不会这样做)
答案 0 :(得分:2)
您可以使用variable arguments。
基本上
double average ( int num, ... )
{
va_list arguments;
double sum = 0;
va_start ( arguments, num );
for ( int x = 0; x < num; x++ )
sum += va_arg ( arguments, double );
va_end ( arguments );
return sum / num;
}
va_list是一个用于保存传入的所有参数的结构,va_start将参数分配给该列表。 va_end在使用后清理列表。 num是传递的参数数量。