gpt4 book ai didi

C++:数组和 sizeof

转载 作者:行者123 更新时间:2023-11-28 00:19:26 24 4
gpt4 key购买 nike

给出的说明:编写一个函数 int getLength(int grid[][6]) 来计算二维数组中包含的元素数。

我的第一个问题是:我们如何将数组传递给函数?当我尝试这样做时出现错误。

    int x[][2] = {{ 1, 2 }, { 2, 3 }};
int getLength(x);

错误:“int (*)[2]”类型的值不能用于初始化“int”类型的实体

============================================= =============

此外,这是否像这样使用 sizeof() 一样简单?

int getLength(int grid[][6]){
cout << sizeof(grid);
return sizeof(grid);
}

最佳答案

那是不可能的。将数组传递给函数时,它会衰减为指针,无法检索数组大小。

您可以使用模板从数组类型中提取大小:

template <size_t N, size_t M>
size_t getLength(int (&)[N][M]) {return N*M;}

通过引用传递数组,它保留了它的类型,从中可以自动推导出模板参数以给出返回值。

关于C++:数组和 sizeof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28294890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com