为了账号安全,请及时绑定邮箱和手机立即绑定

如何将对二维数组的引用传递给函数?

如何将对二维数组的引用传递给函数?

C++
慕沐林林 2019-10-19 16:10:24
我试图将对二维数组的引用传递给C ++中的函数。我知道在编译时这两个维度的大小。这是我现在所拥有的:const int board_width = 80;const int board_height = 80;void do_something(int[board_width][board_height]& array);  //function prototype但这是行不通的。我从g ++收到此错误:error: expected ‘,’ or ‘...’ before ‘*’ token此错误是什么意思,我该如何解决?
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

尽管您可以将引用传递给数组,但是由于数组在未绑定到引用参数的情况下会衰减为函数调用中的指针,并且您可以像数组一样使用指针,因此更常见的是在函数调用中使用数组,如下所示:


void ModifyArray( int arr[][80] ); 

或同等


void ModifyArray( int (*arr)[80] );

在函数内部,可以像使用函数声明一样使用arr:


void ModifyArray( int (&arr)[80][80] );

这种情况唯一不成立的情况是当被调用函数需要静态检查第一个数组索引的大小的保证。


查看完整回答
反对 回复 2019-10-19
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您可能要尝试使用cdecl或c ++ decl。


% c++decl

c++decl> declare i as reference to array 8 of array 12 of int

int (&i)[8][12]

c++decl> explain int (&i)[8][12]

declare i as reference to array 8 of array 12 of int

c++decl> exit


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 1324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信