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

时间:2015-11-22 00:46:28

标签: c++

可能听起来像一个愚蠢的问题:

是否可以将2D数组作为参数传递给采用1D数组的函数

例如:

我有一个数组players[4][5]以及一个函数bestCard(),该函数的标题看起来像这样void bestCard(int arr[5])< - 此5指的是第二个数组的维度players

我希望在函数players[4][...]中传递bestCard(),使得唯一的最后一维被视为数组,即players[5]

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

2 个答案:

答案 0 :(得分:2)

2D数组是一维数组的数组。

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

答案 1 :(得分:1)

我是C ++的初学者,但就我所知,假设你还没有 可以将二维数组传递给你的函数bestCard() overloaded您的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()应该能够接受它们作为论据。