相关疑难解决方法(0)

未定义的行为和序列点

什么是"序列点"?

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

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

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

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

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

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

C/C++中的运算符优先级和关联性

请注意,这与Operator Precedence ..()和++,未定义的行为和序列点无关,为什么这些构造(使用++)是未定义的行为?以及关于此的数百个类似问题


简而言之:标准保证了协会性吗?

详细示例:来自维基百科关于运算符优先级的文章,operator*并且operator/具有相同的优先级,它们是Left-to-right运算符.这是否意味着,标准保证,这:

int res = x / y * z / t;
Run Code Online (Sandbox Code Playgroud)

将被评估为

int res = ( ( x / y ) * z ) / t;
Run Code Online (Sandbox Code Playgroud)

还是它的实现定义了?

如果有保证,你能引用吗?


这只是出于好奇,我总是在这些情况下写括号.
准备删除问题,如果有这样的话.

c c++ operator-precedence associativity

4
推荐指数
2
解决办法
666
查看次数