16

以下のステートメントが標準 C で適切に定義されているかどうかはわかりません

*p1++ += 2;

または他の同様のステートメント:

*E1++ <operator>= E2

ポストインクリメントに関する標準 C から:

後置 ++ 演算子の結果は、オペランドの値です。結果が得られた後、オペランドの値がインクリメントされます。(つまり、適切な型の値 1 がそれ​​に追加されます。) 制約、型、変換、およびポインターに対する操作の影響については、加算演算子と複合代入の説明を参照してください。オペランドの格納された値を更新する副作用は、前のシーケンス ポイントと次のシーケンス ポイントの間で発生します。

そして、複合代入について:

E1 op= E2 の形式の複合代入は、単純な代入式 E1 = E1 op (E2) とは異なり、左辺値 E1 が 1 回だけ評価されるという点でのみ異なります。

4

2 に答える 2