【问题标题】:Unable to call a function from int main() body无法从 int main() 主体调用函数
【发布时间】:2018-11-12 09:08:09
【问题描述】:

这是我创建的 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] - 我想你知道 Javascript 吗?也许是 Python?

标签: c++ arrays function


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您需要将数组变量作为参数发送给函数。试试这个..

    int main(){
        int numbers[] = {1,2,3,4,5};
        cout << sum(numbers,5);
        return 0;
    }
    

    【讨论】:

      【解决方案3】:

      错误来自您的函数调用:

          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 函数返回值的溢出。

      【讨论】:

        【解决方案4】:

        真正的问题在于函数调用中的参数。正确的论点是:

        int main(){
               int array[] = {1,2,3,4,5}; 
               cout<<sum(array,5);
               return 0;
        }
        

        【讨论】:

          【解决方案5】:

          下面给出的代码将解决您的问题。

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

          【讨论】:

          • 当 OP 必须找出程序崩溃或格式化硬盘的原因时,会导致另一个原因:/
          • 什么意思?
          • 仔细检查对sum的调用。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 1970-01-01
          • 2013-01-12
          • 2012-11-19
          相关资源
          最近更新 更多