相关疑难解决方法(0)

未定义的行为和序列点

什么是"序列点"?

未定义的行为和序列点之间的关系是什么?

我经常使用有趣和复杂的表达方式a[++i] = i;,让自己感觉更好.我为什么要停止使用它们?

如果您已阅读此内容,请务必访问后续问题重新加载未定义的行为和序列点.

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ c++-faq undefined-behavior sequence-points

970
推荐指数
4
解决办法
10万
查看次数

C/C++中的执行顺序是否始终相同

这段代码总会产生相同的结果吗?

return c * (t /= d) * t * t + b;
Run Code Online (Sandbox Code Playgroud)

所以我期待:

return ((c * (t / d) ^ 3) + b);
Run Code Online (Sandbox Code Playgroud)

但我不确定编译器是否也可以将其解释为:

return ((c * t * t * (t / d)) + b)
Run Code Online (Sandbox Code Playgroud)

我已搜查在C标准,但找不到答案,我知道这x = x++是不确定的,但我在这里,因为不知道()周围的t /= d,我认为强制编译器首先计算该语句.

c c++

4
推荐指数
1
解决办法
184
查看次数

标签 统计

c++ ×2

c ×1

c++-faq ×1

sequence-points ×1

undefined-behavior ×1