前缀与后缀和 table 由数组组成?

Prefix vs Postfix and table made of array?

你能解释一下这段代码吗,记住写它的人是用它来教我前缀和后缀增量之间的区别

int main()
{
    const int ROWS = 3;`enter code here`
    const int COLUMNS = 3;`enter code here`
    char board[ROWS][COLUMNS] = {{'O', 'X', 'O'}, {' ', 'X', 'X'}, {'X', 'O', 'O'}};
    cout << "Here’s the tic-tac-toe board:\n";




    int i = 0;
    int j = 0;
    while ( i < ROWS) {
        cout<<board[i][j];

        j++;

        if (j >= COLUMNS) {
            j = 0;
            i++;
            cout << endl;
        }
    }

}

代码似乎没有显示后缀和前缀递增之间的任何区别,无论如何它是这样工作的:

后缀

int x = 10;
cout<< (x++); //output: 10
//now x is 11

前缀

int x = 10;
cout<< (++x); //output: 11 (and x is already 11)

基本上,后缀增量只会在调用它的操作之后显示它的效果。前缀增量将立即发挥作用,因此增量值已经在调用它的命令中使用。

如果增量是孤立的,即不在操作内部使用,基本上是一样的:

for(int i = 0; i < 10; i++)   =   for(int i = 0; i < 10; ++i)

关于您的代码,它只是按以下顺序遍历矩阵的所有槽:

(0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)

j >= COLUMNS时,表示已经访问了(0,0), (0,1), (0,2),所以可以通过i++进入下一行(i表示行索引)因为第 i 行的所有列都已被访问过。执行 j = 0 会将列重置为开头(j 表示列索引)。