C++ - GetLength() 方法获取数组的长度

标签 c++ arrays

我还在学习 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/

相关文章:

c++ - OpenCV undistortPoints 没有给出失真模型的精确逆

c++ - 如何在不使用 QT5 中的 lambda 的情况下将带有 int 参数的信号连接到带有枚举参数的插槽?

c++ - QtBitcoinTrader 找不到 sayText 方法

c++ - "int *a[5]"和 int(*a)[5]” 有什么区别?

java - HashMap find() 与数组

c - C 中数组中的 int 不断变为零

php - 将 MySQL 结果集传输到数组时排序/乱序

c++ - 使用浮点/双除法比较可还原分数

c++ - 是否可以在 C++ 中返回类似的东西?

javascript - 如何将句子拆分为字母