将二维数组作为参数传递给采用一维数组的函数

Passing 2D array as an argument to a function which takes 1D array

听起来像是个愚蠢的问题:

是否可以将二维数组作为参数传递给采用一维数组的函数

例如:

我有一个数组 players[4][5] 和一个函数 bestCard(),该函数的 header 看起来像这样 void bestCard(int arr[5]) <- 这个 5指的是数组 players

的第二维

我想在函数 bestCard() 中传递 players[4][...] 的方式是将唯一的最后一个维度视为数组,即 players[5]

不确定我的问题是否全面。

二维数组是一维数组的数组。

在您的例子中,这意味着 player[i] 是一个包含五个元素的数组,i03 之间。因此,将 player[i] 传递给您的函数将传递一个包含 5 个元素的数组(或更严格地说,是一个指向包含 5 个元素的数组的第一个元素的指针)。

我是 C++ 的初学者,但据我所知, 可以将二维数组传递给您的函数 bestCard(),假设您没有 您的 bestCard() 函数来获取不同类型的参数。

根据你在问题中提供给我的信息,我猜测有 4 名玩家,每人手上有 5 张牌。

如果你想通过 bestCard() 单个玩家的手,你将不得不这样写:

bestCard(players[0]) // Determine the bestCard for the first player.
bestCard(players[1]) // Determine the bestCard for the second player.
...
bestCard(players[3]) // Determine the bestCard for the fourth player.

尽管 players 实际上是一个二维数组,但每个 players[i](对于 0 < i < 4)的计算结果都是一维数组。因此,bestCard() 应该能够接受它们作为参数。