将二维数组作为参数传递给采用一维数组的函数
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]
是一个包含五个元素的数组,i
在 0
和 3
之间。因此,将 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()
应该能够接受它们作为参数。
听起来像是个愚蠢的问题:
是否可以将二维数组作为参数传递给采用一维数组的函数
例如:
我有一个数组 players[4][5]
和一个函数 bestCard()
,该函数的 header 看起来像这样 void bestCard(int arr[5])
<- 这个 5
指的是数组 players
我想在函数 bestCard()
中传递 players[4][...]
的方式是将唯一的最后一个维度视为数组,即 players[5]
不确定我的问题是否全面。
二维数组是一维数组的数组。
在您的例子中,这意味着 player[i]
是一个包含五个元素的数组,i
在 0
和 3
之间。因此,将 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()
应该能够接受它们作为参数。