二元运算符求值顺序问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二元运算符求值顺序问题相关的知识,希望对你有一定的参考价值。

对于没有指定顺序的运算符来说,如果表达式指向并修改了同一对象,将会引发错误并产生未定义行为。如:

int i = 0;

cout << i << " " << ++i; // 未定义

经验:

拿不准时用括号

如果改变了一个运算对象的值,在表达式的其他地方就不要在使用这个运算对象(当改变运算对象的子表达式本身就是另外一个子表达式的运算对象时,是可以的 如:*++iter

以上是关于二元运算符求值顺序问题的主要内容,如果未能解决你的问题,请参考以下文章

三元运算符求值顺序

Java表达式的执行顺序

“从右到左的运算符关联性”是不是与 javaScript 中赋值运算符中的求值顺序相同

C之旅运算符——优先级,结合性和求值顺序

ffmpeg文档08-表达式计算/求值

CSDN之C技能树学习:15 - 运算符优先级与求值顺序