Zsh*_*shn 6 c ternary sequence-points synchronisation
我的表达式如下所示: -
while (count)
{
...
...
index = ((count == 20)? 0 : index++);
...
...
}
Run Code Online (Sandbox Code Playgroud)
现在三元运算符是C中的序列点,但我相信序列点在测试部分结束.
这种理解是否正确,因此这种说法会导致未定义的行为?
Dan*_*her 12
对.在评估条件之后有一个序列点,但是下一个序列点是以分号结束语句.所以无论何时count != 20,你都有未定义的行为
index = index++;
Run Code Online (Sandbox Code Playgroud)
因为index被修改两次而没有插入序列点.