首页 > 解决方案 > 无法从 int main() 主体调用函数

问题描述

这是我创建的 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;
}

我知道这个错误非常幼稚而且很小,但我们将不胜感激!

标签: c++arraysfunction

解决方案


您正在尝试通过创建数组文字[2],就像一些流行的语言支持一样。但是,C++ 不支持这种语法。如果你想创建一个数组传入sum,最简单的方法是这样的

int arr[] = {2};
cout << sum(arr,1);

注意我还调整了传递给函数的大小,在 C++ 中没有边界检查,所以传递比实际数组更大的大小是自找麻烦。


推荐阅读