C - 在函数中传递局部变量而不进行初始化

时间:2016-09-20 20:08:19

标签: c variables local initializing

所以我真的很陌生,我想知道如何在函数中传递局部变量(就初始化而言)。例如,我有一个函数(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;
}

1 个答案:

答案 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;
}