所以我真的很陌生,我想知道如何在函数中传递局部变量(就初始化而言)。例如,我有一个函数(move)声明并初始化两个变量(t_row和t_column)以在for循环中使用,并且在该循环中,我有另一个函数(swap),如果满足某些条件则调用它。如何在交换函数中使用这些变量。我知道我需要声明它们,但是它们在swap函数中的初始化取决于调用for循环交换的迭代次数。在此先感谢您的帮助!
bool move(int tile)
{
for (int t_row = 0; t_row < d; t_row++)
{
for (int t_column = 0; t_column < d; t_column++)
{
if (tile == board[t_row][t_column])
{
if (0 < t_row && board[t_row - 1][t_column] == 0)
{
swap(t_row - 1, t_column);
return true;
}
}
}
}
return false;
}
void swap(int row_new, int column_new)
{
int t_row;
int t_column;
int hold = board[t_row][t_column];
board[t_row][t_column] = 0;
board[row_new][column_new] = hold;
}
答案 0 :(得分:3)
我能看到的最简单的方法是传递旧行和列的值。
void swap(int row_new, int col_new, int row_old, int col_old) {
int hold = board[row_old][col_old];
board[row_old][column_old] = 0;
board[row_new][column_new] = hold;
}