C++中有时候看到参数中有...,这是啥意思?怎么用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中有时候看到参数中有...,这是啥意思?怎么用?相关的知识,希望对你有一定的参考价值。

参考技术A 是在函数的声明中看到吗?
...表示参数个数不定,如int printf( const char *format [, argument]... );
比如printf("%d", 123);的参数有2个,printf("%d, %d", 123, 456);的参数有3个。
...表示在此后的参数可以有随意个。
参考技术B 意思是不定参数,参数的数量可以有多个 参考技术C 数量可变的参数
实现方法举例:
double sum_series(int num, ...)

double sum= 0.0, t;
va_list argptr;
va_start(argptr, num);
for(; num; num--)

t= va_arg(argptr, double);
sum= sum+ t;

va_end(argptr);
return sum;
本回答被提问者采纳
参考技术D 数量可变的参数
C++/CLI语言允许我们将形参列表指定为数组,数组说明前面加上省略号,从而提供数量可变的实参
例:
double sum(...array<double>^ args)

double sum=0.0;
for each(double arg in args)
sum+=arg;
return sum;

C++ 这句代码啥意思啊

#define atoul(str) strtoul(str,NULL,10)

这是一个宏定义,意思就是,在代码中使用atoul(str)函数的时候,实际上使用的是strtoul(str,NULL,10)这个函数,也就是说用atoul(str)代替strtoul(str,NULL,10) 参考技术A 定义了一个宏,把字符串 “str” 转换为10进制的数。

strtoul()会将参数nptr字符串根据参数base来转换成无符号的长整型数。参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制数等。当base值为0时会根据情况选择用哪种进制:如果第一个字符是'0',就判断第二字符如果是‘x’则用16进制,否则用8进制;第一个字符不是‘0’,则用10进制。一开始strtoul()会扫描参数nptr字符串,跳过前面的空格字符串,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回。

inta;
char pNum[]="123";
a=atoul(pNum);
printf("%d\n",a);

输出: 123
参考技术B 定义atoul(str)代表一个函数,函数为:将字符串str转换为无符号长整型10进制类型本回答被提问者采纳

以上是关于C++中有时候看到参数中有...,这是啥意思?怎么用?的主要内容,如果未能解决你的问题,请参考以下文章

c++中connect是啥意思?怎么用的?

bool在c语言中是啥意思?

求问,经常在哔哩哔哩的弹幕上看到有人发的flag是啥意思?

请问啥叫回调方法?

急急急,用sourcetree 克隆的时候一直提示无效的源路径 这是啥意思啊 如图

SQL参数如何设置