输出的数组值与存储的值不同

son*_*ool 1 c++ arrays

我创建了一个数组,并在initializeBoard函数中设置了从1到9的值,但由于某种原因,当我打印出值时,它们会出现0到8.为什么会发生这种情况?不应该打印1到9,因为那些是我放入数组的数字initializeBoard

int main()
{
    initializeBoard();
    ticTacToeBoard();
}

void initializeBoard()
{
    for (int i = 1; i < 9; i++)
        ticTacBoard[i] = i;
    cout << endl;
}

void ticTacToeBoard ()
{
    for (int y = 0; y < 3; y++)
    {
        for (int x = 0; x < 3; x++)
            cout << ticTacBoard[3 * y + x] << " ";
        cout << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 8

你有一个一个一个错误.数组在C++中使用从零开始的索引.您的代码不会为数组的元素赋值.

试试这个:

for (int i = 0; i < 9; i++)
{
    ticTacBoard[i] = i + 1;
}
Run Code Online (Sandbox Code Playgroud)

  • @mystycs:如果从1开始,则不为数组中的第0个元素赋值. (2认同)