📜  c++ 中的数组长度 - C 编程语言(1)

📅  最后修改于: 2023-12-03 14:59:48.556000             🧑  作者: Mango

C++ 中的数组长度 - C 编程语言

在C++中,一维数组的长度可以使用sizeof运算符来获取。但是,这个方法不适用于多维数组。

int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(int); // 数组长度为5

在上面的示例中,我们定义了一个数组arr,并使用sizeof运算符以字节为单位获取了其大小,然后将其除以int类型的大小以获得数组的长度。

然而,需要注意的是,这种方法只适用于数组定义在函数内部的情况。如果数组是在函数外部定义的,则无法使用此方法获取其长度。

int arr[] = {1, 2, 3, 4, 5}; // 定义在函数外部,无法使用sizeof获取其长度

int main() {
    int len = sizeof(arr) / sizeof(int); // 错误示例
    return 0;
}

对于多维数组,sizeof运算符返回的是整个数组的大小,而不是其元素的数量。因此,无法使用sizeof来计算多维数组的长度。

int arr2d[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int len = sizeof(arr2d) / sizeof(int); // 错误示例

在这种情况下,我们需要显式地指定数组的维数和每个维度的大小,并计算出数组的总长度。

int arr2d[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int rows = sizeof(arr2d) / sizeof(arr2d[0]); // 多维数组的行数
int cols = sizeof(arr2d[0]) / sizeof(int); // 多维数组的每行元素个数
int len = rows * cols; // 多维数组的长度为9

总结:对于一维数组,可以使用sizeof运算符获取其长度。对于多维数组,则需要显式指定其维数和每个维度的大小,并计算出其总长度。