C言語の基礎
int i = 5;
int a = i++;
int b = ++i;
printf("%d %d %d\n", a, b, i);前置と後置の ++ を使った上のコードを実行したときの出力として、正しいものはどれか。
- A5 6 6
- B5 7 7
- C6 7 7
答えと解説を見る
正解:B. 5 7 7
後置の i++ は、式の値として増やす前の値を使い、そのあとで i を1増やします。そのため a には5が入り、i は6になります。前置の ++i は、先に i を1増やしてから、増やした後の値を式の値にするので、i は7になり、b にも7が入ります。出力は「5 7 7」です。
- A. i++ でも i 自身は6に増えます。i が5のままだと考えた場合の値です。
- B. 正しい。a は増やす前の5、b と i は2回増えた後の7です。
- C. 後置の i++ の値は増やす前の5なので、a は6ではありません。