スタック オーバーフローに関する非常に良い質問がありました。
i = 0 の場合、(i += i++) が 0 に等しいのはなぜですか?
しかし、C で同じコードを試してみると、異なる結果が得られました。
int i = 0;
i += i++; // 1 in C and 0 in C#
printf("%d", i);
ただし、次のとおりです。
i = i++ + i; // 1 in C and 1 in C#
i += i++ + i; // 1 in C
C# では、++
and=+
演算子を評価します。まず、tempVar
各 fo に代入し、 に対して操作を実行しtempVars
ます。Cはそれをどのように実装しますか? それともアーキテクチャによって異なりますか?