首页  >  文章  >  后端开发  >  为什么 C 在通过引用传递二维数组时会抛出“在 '*' 标记之前预期的 ',' 或 '...'”?

为什么 C 在通过引用传递二维数组时会抛出“在 '*' 标记之前预期的 ',' 或 '...'”?

Linda Hamilton
Linda Hamilton原创
2024-11-06 00:41:021011浏览

Why Does C   Throw

传递对二维数组的引用

问题

尝试将对二维数组的引用传递给函数时C 中,用户可能会遇到来自 g 的错误“在 '*' 标记之前预期有 ',' 或 '...'”。问题来了:这个错误表明什么以及如何解决?

解决方案

该错误表明 do_something() 的函数原型不正确。要在编译时传递对已知维度的二维数组的引用,应使用以下语法:

<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>

将参数声明为 int array[board_width][board_height];相反,将传递一个指向数组的第一个子数组的指针,这在本例中不是所需的功能。

说明

引用语法 &array 确保实际数组通过引用,允许函数直接修改数组的内容。符号 int (&array)[board_width][board_height] 指定参数数组是对维度为 board_width 和 board_height 的二维数组的引用。

相比之下,int array[board_width][board_height] ;将参数数组声明为指向 board_height 整数的一维数组的指针,从而忽略数组的第二个维度。这会导致报告错误,因为语法不正确。

以上是为什么 C 在通过引用传递二维数组时会抛出“在 '*' 标记之前预期的 ',' 或 '...'”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn