本文介绍了如果括号具有更高的优先级,那么为什么增量运算符首先被求解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一行代码,

int a = 10;
a = ++a * ( ++a + 5);

我的预期产出是 12 *(11 + 5)= 192 ,但我 187 。尽管我知道()中的增量运算符首先要解决,然后为什么首先解决外部的增量运算符?

My expected output was 12 * (11 + 5) = 192 ,but I got 187. As much as I knew the increment operator inside () is to be solved first, then why the one outside is solved first?

推荐答案

表达式从左到右进行评估。括号(和优先级)只是表达分组,它们不表示评价的顺序。

Expressions are evaluated left to right. Parentheses (and precedence) just express grouping, they don't express ordering of evaluation.

所以

 11 * (12 + 5)
++a   ++a

等于

187

这篇关于如果括号具有更高的优先级,那么为什么增量运算符首先被求解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 10:48