回答編集履歴
1
調査しました
answer
CHANGED
@@ -4,4 +4,13 @@
|
|
4
4
|
|
5
5
|
C#の詳細は知りませんが、少なくともCでは、i++でのインクリメントがいつ実行されるかは処理系依存です(「ココまでには完了している」という規定はありますけれど)。
|
6
6
|
|
7
|
-
ですから、演算子の副作用で値を変える変数を同じ式中で別に参照することはC言語においては文法的には許されていても運用として「禁じ手」とされるのが普通です。
|
7
|
+
ですから、演算子の副作用で値を変える変数を同じ式中で別に参照することはC言語においては文法的には許されていても運用として「禁じ手」とされるのが普通です。
|
8
|
+
|
9
|
+
---
|
10
|
+
一応Cの規格書(JIS)にあたってみました。未定義とも処理系依存とも書いてはいませんでした。
|
11
|
+
|
12
|
+
> 6.5.2.4 後置増分及び後置減分演算子
|
13
|
+
<略>
|
14
|
+
オペランドに格納されている値を更新する副作用は,直前の副作用完了点から次の副作用完了点までの間に起こらなければならない。
|
15
|
+
|
16
|
+
とだけ。
|