我试图获取作为参数传递的某个函数的数组长度。 的代码是这个样子:数组和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