1

所以我对此真的很陌生,我想知道如何在函数中传递局部变量(就初始化而言)。例如,我有一个函数(move),它声明和初始化两个变量(t_row 和 t_column)以在 for 循环中使用,在该循环中,我有另一个函数(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;
}
4

1 回答 1

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;
}
于 2016-09-20T20:14:55.663 回答