顺序表达式

以下表达式是按顺序排列的

a && b
a || b
a , b
a ? b : c
for ( a ; b ; c ) { ... }

在所有情况下,完全评估表达式 a,并且在评估 bc 之前应用所有副作用。在第四种情况下,将仅评估 bc 中的一个。在最后一种情况下,b 被完全评估,并且在评估 c 之前应用所有副作用。

在所有情况下,在评估 bc 之前对表达 a 的评估进行测序(或者,在评估 a 之后bc 的评估进行测序)。

因此,表达式就像

x++ && x++
x++ ? x++ : y++ 
(x = f()) && x != 0
for ( x = 0; x < 10; x++ ) { ... }
y = (x++, x++);

有明确的行为。