標準 c によると、なぜそれがj= i++ * i++
未定義でj=i++ & i++
完全に合法的な声明なのですか?
質問する
642 次
3 に答える
4
どちらも未定義の動作です。
j = i++ * i++; // undefined behavior
j = i++ & i++; // undefined behavior
object の値はi
、2 つの例の 2 つのシーケンス ポイント間で複数回変更されています。
于 2013-10-22T18:07:55.667 に答える
1
于 2013-10-22T18:08:48.250 に答える
1
Mystical と ouah が既に述べたように、どちらも定義されていません。
j = i++ && i++;
&& ショートカットなので、明確に定義されます。つまり、最初に左のオペランドを評価し、次に左のオペランドが true の場合は右のオペランドを評価する必要があります。
于 2013-10-22T18:11:06.310 に答える