我还在学习 C++。目前我正在学习数组并想要获取数组的长度。我知道要获取必须输入的数组的长度:
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,即使它们具有相同的代码。
感谢您的帮助。
最佳答案
因为当您将数组传递给函数时,数组会衰减为指针。因此,sizeof(arg)
将返回架构上指针的大小。如果您需要大小,则需要向函数传递一个额外的参数。
检查:What is array decaying?
关于C++ - GetLength() 方法获取数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546262/