🦁
プレインクリメントの挙動

上の実行結果は何になると思いますか?
正解は以下です。

ポストインクリメントされたbの返り値は、インクリメントする前の値です。よってcは6となります。
int j = i;
i = i + 1;
return j;
一方で、プレインクリメントされたaの返り値は6となっていますね。以下がその内部挙動です。
int i = i + 1;
return i;
forループではプレ、ポストに関わらずfor文の中に書かれた処理のあとインクリメントされます。
不要にメモリ(この場合変数j)を使用しないためには、プレインクリメントを使うのがいいでしょう。コンパイルで最適化されるケースとされないケースがあるそうです。詳しくは参考文献をご覧ください。
一部のLLMはプレインクリメントを好んで使っていますね。開発者が指示しているのか気になります。
参考文献
[1] ループでi++を使うのは止めよう〜++ iがi ++よりも優れていることが多い理由(前置インクリメント vs 後置インクリメント)〜
Discussion