![](/img/trans.png)
[英]C++ Template class to print string or int output based on the call from main function
[英]Unable to call a function from int main() body
这是我创建的SUM函数,用于处理任意数量的整数。
#include <iostream>
using namespace std;
int sum(const int numbers[], const int numbersLen){
int sum = 0;
for (int i=0; i < numbersLen; ++i){
sum += numbers[i];
}
return sum;
}
我正在从int main()调用此函数,但它不断给出错误
[Error] invalid conversion from 'char' to 'const int*' [-fpermissive]
主要功能如下:
int main(){
cout << sum([2],5);
return 0;
}
我知道这个错误非常幼稚,但是非常感谢您的帮助!
您正在尝试通过[2]
创建数组文字,例如一些流行的语言支持。 但是C ++不支持这种语法。 如果要创建一个数组以传递给sum
,最简单的方法是这样的
int arr[] = {2};
cout << sum(arr,1);
注意,我还调整了传递给函数的大小,C ++中没有边界检查,因此传递大于实际数组的大小会带来麻烦。
您需要将数组变量作为参数发送给函数。 尝试这个..
int main(){
int numbers[] = {1,2,3,4,5};
cout << sum(numbers,5);
return 0;
}
错误来自您的函数调用:
cout << sum([2], 5);
我认为您想将具有5个值{2,2,2,2,2}的数组传递给sum函数,那么它将是:
int main() {
int arr[] = {2, 2, 2, 2, 2};
cout << sum(arr, 5);
return 0;
}
在sum函数中还有一件事,将numbersLen作为值传递是完全可以的,因此const
是可移动的。 您还应该注意sum函数返回值的溢出。
真正的问题在于函数调用中的参数。 正确的参数是:
int main(){
int array[] = {1,2,3,4,5};
cout<<sum(array,5);
return 0;
}
下面给出的代码将解决您的问题。
int main(){
int arr[] = {2};
cout << sum(arr,1);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.