簡體   English   中英

無法從int main()主體中調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM