微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将2D数组作为参数发送给递归函数?

如何解决如何将2D数组作为参数发送给递归函数?

我有一个简单的测试函数,该函数获取2D数组的行和列索引,并检查该位置的2D值是否为2。如果不是,它将检查下一个行索引,直到检查完毕该行中每个元素的值2:

  1 bool rowContainsTwo(const int rowIndex,const int columnIndex,const int size,const int grid[size][size]) {
  2   if (grid[rowIndex][columnIndex] == 2)
  3     return true;
  4   else
  5     return (rowIndex + 1 < size) ? rowContainsTwo(rowIndex + 1,columnIndex,size,grid) : false;
  6 }

编译该测试函数时,出现以下编译错误

$ g++ -std=c++11 test.cpp -o test
test.cpp:5:84: error: cannot initialize a parameter of type 'const int (*)[*]' with an lvalue of type 'const int (*)[size]'
    return (rowIndex + 1 < size) ? rowContainsTwo(rowIndex + 1,grid) : false;
                                                                                   ^~~~
test.cpp:1:90: note: passing argument to parameter 'grid' here
bool rowContainsTwo(const int rowIndex,const int grid[size][size]) {
                                                                                         ^
1 error generated.

我已经看过各种有关将2D数组作为函数参数传递的文章,但是我还没有看到任何有关此错误的信息,以及如何递归将数组传递给函数 / em>。

我希望获得一个直接的答案,即如何以递归方式传递静态数组作为参数,而不必使其成为动态数组。

请注意,我不需要修改数组元素,只需要查看元素即可。

还要注意,我知道使用向量会更好,并且我可以使用循环和各种迭代方法-设置了约束,我想使用静态2D数组来完成此操作,并且我想递归地将数组作为参数传递。

感谢阅读!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。