3

次の 3 つのケースすべてで Visual C++ コンパイラの出力が異なる理由を理解しようとしています。

プログラム 1

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

プログラム 2

  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の値をインクリメントすることを期待していました。最初は、3 つすべてが同じ出力になると思っていましたが、出力を見た後、少なくともプログラム 1 とプログラム 2 の出力は同じであると予想していました。

ただし、出力は 3 つのケースすべてで異なっていました。ここで欠けているものを修正してください。

4

0 に答える 0