根据标准 c 为什么它j= i++ * i++
未定义且j=i++ & i++
完全合法的声明?
问问题
642 次
3 回答
4
它们都是未定义的行为。
j = i++ * i++; // undefined behavior
j = i++ & i++; // undefined behavior
在两个示例中,object 的值i
在两个序列点之间被多次修改。
于 2013-10-22T18:07:55.667 回答
1
于 2013-10-22T18:08:48.250 回答
1
正如 Mystical 和 ouah 已经说过的,两者都是未定义的。
j = i++ && i++;
将是明确定义的,因为 && 快捷方式,这意味着它必须首先评估左操作数,然后 - 如果左操作数为真 - 右操作数。
于 2013-10-22T18:11:06.310 回答