3

我试图理解为什么以下三种情况都会导致 Visual C++ 编译器的输出不同

程序 1

  i = 0;
  while ( i < 100)
  {
      printf( "%d: %d\n", array1[i], array2[i]);
      i++;
  }

节目二

  i = 0;
  while ( i < 100)
  {
      printf( "%d: %d\n", array1[i], array2[i++]);
  }

方案 3

  i = 0;
  while ( i < 100)
  {
      printf( "%d: %d\n", array1[i++], array2[i]);
  }

根据我的理解,我期望增量运算符会在计算表达式后增加i的值。最初我认为这三个都会导致相同的输出,但在看到输出后,我期望至少程序 1 和程序 2的输出应该相同。

但是,在所有三种情况下,输出都不同。请纠正我在这里遗漏的内容。

4

0 回答 0