在
int x = 5;
int answer = x++ * 6 + 4 * 10 / 2;
输出为50,但为什么++运算符不将表达式计算为51?
答案 0 :(得分:2)
++
位于x
而不是结果。
为什么++运算符不将表达式计算为51?
你能解释一下这是怎么回事?如果你想要那样做
int answer = x * 6 + 4 * 10 / 2 + 1;
答案 1 :(得分:1)
答案 2 :(得分:0)
Postfix运算符在执行语句后进行评估 根据{{3}}
可以在操作数之前(前缀)或之后(后缀)应用递增/递减运算符。代码结果++;和++结果;两个结果都会以一个增加结果。唯一的区别是前缀版本(++结果)评估为递增值,而后缀版本(结果++)评估为原始值。
答案 3 :(得分:0)
++后缀运算符的定义效果是变量x
递增,就像您编写x = x+1
一样,但表达式x++
的值是值 之前的增量。如果您希望x
如何更改,但在周围表达式中使用之后的 avlue,则需要使用++x
。如果您实际上根本不想增加x
的内容,请使用(x+1)
。
(但是,我认为,当将增加的值分配给x
时,未定义 - 甚至可能是anwser
获得其值;另一方面,通常{ {1}}几乎是原子的。)