前缀与后缀和 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
表示列索引)。
你能解释一下这段代码吗,记住写它的人是用它来教我前缀和后缀增量之间的区别
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
表示列索引)。