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++中有时候看到参数中有...,这是啥意思?怎么用?的主要内容,如果未能解决你的问题,请参考以下文章