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

我试图将对二维数组的引用传递给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

此错误是什么意思,我该如何解决?


慕沐林林
浏览 1333回答 3
3回答

慕无忌1623718

尽管您可以将引用传递给数组,但是由于数组在未绑定到引用参数的情况下会衰减为函数调用中的指针,并且您可以像数组一样使用指针,因此更常见的是在函数调用中使用数组,如下所示:void ModifyArray( int arr[][80] ); 或同等void ModifyArray( int (*arr)[80] );在函数内部,可以像使用函数声明一样使用arr:void ModifyArray( int (&arr)[80][80] );这种情况唯一不成立的情况是当被调用函数需要静态检查第一个数组索引的大小的保证。

牛魔王的故事

您可能要尝试使用cdecl或c ++ decl。% c++declc++decl> declare i as reference to array 8 of array 12 of intint (&i)[8][12]c++decl> explain int (&i)[8][12]declare i as reference to array 8 of array 12 of intc++decl> exit
打开App,查看更多内容
随时随地看视频慕课网APP