n = ((i++) > (j)?(i++):(j));
本はI> Jを推定することを主張し、nは予期しない値を持っており、私は二回インクリメントされます。
この文の後にnが期待値を持つ理由はわかりません。
は、私は(存在しないので、いない書籍の説明)ので、ここ私理論だ、未定義の動作についての多くの例を読んで、私が正しいかどうかを教えてください:
まず、(私は++します)>( j)が評価され、iがインクリメントされている場合とされていない場合があります。 です。
i> nと仮定すると、(i ++)を評価する必要があります。 私はまだインクリメントされているかどうかはなので、この理由のため ステートメントは定義されていません。 iまたはi + 1が返されるかどうかはわかりません。
は今ここに私の理論を推定問題は右である - は、なぜ我々は、私はまだかインクリメントされているかどうかを を知らないのですか?このコード行がif文として記述されていた場合、前にインクリメントする必要があると私は確信しています。ではなぜ化合物が違うのですか?
ありがとうございます。
あなたはすでにあなたの質問に答えています。シーケンスポイントについて読む。 – Olaf
@ WumpusQ.Wumbley:ありがとう、CVが取り下げられました。 – Olaf
"なぜ化合物は違うのですか?"それは...ですか? http://port70.net/~nsz/c/c11/n1570.html#6.5.15p4 – Olaf