可能听起来像一个愚蠢的问题:
是否可以将2D数组作为参数传递给采用1D数组的函数
例如:
我有一个数组players[4][5]
以及一个函数bestCard()
,该函数的标题看起来像这样void bestCard(int arr[5])
< - 此5
指的是第二个数组的维度players
我希望在函数players[4][...]
中传递bestCard()
,使得唯一的最后一维被视为数组,即players[5]
不确定我的问题是否全面。
答案 0 :(得分:2)
2D数组是一维数组的数组。
在您的情况下,这意味着player[i]
是一个包含五个元素的数组,i
和0
之间的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()
应该能够接受它们作为论据。