-1

我是编程新手,我对数组感到困惑,你们怎么理解 box[rows][cols] = x++; 我们知道 x=1,所以在这个语句中表示 box[0][0] = 2; 因为x++?当我 printf box[row][cols] 给我一个值为 1 时,为什么当我们将它设置为 box[rows][cols]= x++ 时它是 1;这应该是 2 因为我们设置 x=1 然后 x++ 对吗?

int box[2][2], rows, cols, x, i, j;

for(i=1; i<2; i++)
{
    for( j=1; j<2; j++)
    {
       box[rows][cols]= x++;
       printf("%d", box[rows][cols]);  
    }
}
4

1 回答 1

6

您需要了解运算符++--. 在您的情况下,该语句box[rows][cols]= x++;使用后增量运算符,它在赋值后更新 x 的值。

试一试box[rows][cols]= ++x;,你会得到预期的输出2

同样在您的代码中,您需要初始化这两个变量rows并且cols未初始化。所以改变循环如下,

for(i=0; i<2; i++)
{
    for( j=0; j<2; j++)
    {
       box[i][j]= x++;
       printf("%d", box[j][j]);  
    }
}
于 2013-06-11T03:16:56.787 回答