【发布时间】:2019-04-03 01:15:08
【问题描述】:
我有两个函数可以让用户移动和计算机生成移动,因此在创建更新计算机和用户移动的函数时,移动的“x”和“o”以及“_”对于一个空白空间,我会为我的多维数组使用指针吗?如果是这样,你将如何编码?非常感谢一个带有解释的示例!
【问题讨论】:
标签: c function pointers multidimensional-array
我有两个函数可以让用户移动和计算机生成移动,因此在创建更新计算机和用户移动的函数时,移动的“x”和“o”以及“_”对于一个空白空间,我会为我的多维数组使用指针吗?如果是这样,你将如何编码?非常感谢一个带有解释的示例!
【问题讨论】:
标签: c function pointers multidimensional-array
用函数更新二维char数组,将指针作为参数传递给数组:
int main(){
char array[5][5];
updateArray(array, 0, 0, 'a');
}
void updateArray(char * arr, int row, int col, char c){
arr[row][col] = c;
}
请注意,在 C 中声明数组时,数组标识符(在本例中为 array)是指向数组第一个元素的指针。方括号 ([row][col]) 通过使用 指针算法 计算其地址来访问数组的元素。希望这会有所帮助。
【讨论】:
如果你想传递一个指向你的函数的指针,你可以像这样声明和使用它:
computer_move(char (*p)[3][3])
{
p[1][1] = 'x';
}
char ttt[3][3];
computer_move(&ttt);
【讨论】:
您打算如何使用指针?指向什么?我认为你根本不需要指针,除非你有一些具体的想法,但你的问题中没有说明。我会使用一个简单的二维字符数组。
像这样定义你的数组:
char a[3][3] = {
{"_", "_", "_"},
{"_", "_", "_"},
{"_", "_", "_"}};
您的图板可能如下所示:4x4 multidimensional array
例如,要将“x”填充到左上角,请编写:
a[0][0] = 'x';
希望有帮助!
【讨论】: