我还在学习C++。目前我正在学习数组,并希望获得数组的长度。我知道要得到一个阵列的长度,我必须输入:C++ - 获取数组长度的GetLength()方法
int length = (sizeof(array)/sizeof(*array));
它工作得很好。但是,当我创建一个方法来获取我命名为getLength()的长度时,它不起作用。在这里我的代码:
#include <iostream>
using namespace std;
int array[5] = {1,2,3,4,5};
int getLength(int arg[]){
return(sizeof(arg)/sizeof(*arg));
}
int main(){
//array length
cout << "Displaying array length" << endl;
cout << getLength(array) << endl;
system("pause");
}
这应该返回5,但它返回1.如果我用以前的方式,它返回5,即使他们有相同的代码。
感谢您的帮助。
另外:http://stackoverflow.com/questions/4810664/how-do-i-use-arrays-in-c“5.3陷阱”特别是。 – user2079303
所有*你的“如何在C++中使用数组”的答案是**不要**。真。使用std :: vector。 –
一种方法是使用模板非类型参数来推断数组大小,如[std :: end does it](http://stackoverflow.com/a/33496357/1708801)。 –