我開始學習C++前兩天這個錯誤,我得到的是模糊的我,我嘗試做以下汽車在此範圍內未聲明
int sumArray(const int arr)
{
int sum = 0;
for (auto &n : arr) {
sum += n;
}
return sum;
};
int main()
{
int numbers[] = {1, 2, 5, 10};
return sumArray(numbers);
}
這是從 「A巡迴賽C++的」 一個例子略有變化,我得到的錯誤是
cpprepl.cpp: In function ‘int sumArray(int)’: cpprepl.cpp:4:18: error: ‘begin’ was not declared in this scope for (auto &n : arr) { ^~~ cpprepl.cpp:4:18: error: ‘end’ was not declared in this scope cpprepl.cpp: In function ‘int main()’: cpprepl.cpp:13:26: error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive] return sumArray(numbers); ^ cpprepl.cpp:1:5: note: initializing argument 1 of ‘int sumArray(int)’ int sumArray(const int arr) ^~~~~~~~
如果我做
int main() {
int arr[] = {1, 2, 5, 10};
int sum = 0;
for (auto &n : arr) {
sum += n;
}
return sum;
}
一切都很好,所以我懷疑我不瞭解指針和C++如何通過numbers
到sumArray
;我在類似的主題上看到了很多問題,但我仍然想不到應該怎麼做。
S /'INT sumArray(const int的ARR)'/'INT sumArray(const int的改編[4])' – user0042
@ user0042這樣做,仍然獲得約'begin'前兩個錯誤, 'end'。 –
我建議你應該使用'std :: vector'而不是原始數組。 –
user0042