我試圖獲取作爲參數傳遞的某個函數的數組長度。 的代碼是這個樣子:數組和C++中的長度
double getAverage(int numbers[])
{
int length = sizeof(numbers)/sizeof(numbers[0]);
// here the result of the length is 1.
int sum = 0;
for (int i = 0 ; i < length ; i++)
{
sum += numbers[i];
}
return (double)sum/length;
}
int main()
{
int numbers[8] = {1,2,3,4,5,6,7,8};
//if I call here sizeof(numbers)/sizeof(numbers[0] the result will be 8 as it
//should be.
cout << getAverage(numbers) << endl;
return 0;
}
我的問題是如何獲得通過引用作爲函數的參數傳遞的數組的長度(雖然我知道,每個數組通過引用傳遞)? 我知道有很多關於在C/C++中查找數組長度的問題,但是他們中沒有人給我我正在尋找的答案。 在此先感謝。
它可能支付檢查出'的std ::矢量'或'的std ::陣列'。 –
aligray
2012-01-30 09:48:22
可能的重複[如何在C++中使用數組?](http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in-c) – fredoverflow 2012-01-30 10:01:48
現在你可能開始理解這個問題了'sizeof(x [0])'方法的'sizeof(x [0])'方法... C++中有類型安全的替代方法(超越使用向量)來獲得在編譯時會檢測到錯誤的數組的大小。 – 2012-01-30 13:10:56