我无法理解如何在表达式中修复Postfix和Prefix Increment:
var x = 1;
x = ++x + x++ * x
为什么浏览器控制台会返回8?
答案 0 :(得分:4)
从左到右评估:
#include <stdio.h>
void hello(const char * name){
printf("Hello %s!\n", name);
}
答案 1 :(得分:1)
var x = 1; x = ++ x + x ++ * x
按照
++x => 2 (After pre-fix's updated value)
x++ => 2 (Post-fix will update in second sequence not now)
x => 3 (After post-fix's updated value)
如此
x = 2 + 2 * 3
按优先级相乘 会
x = 2 + 6
因此
x = 8
答案 2 :(得分:1)
您可以在此网站上了解更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Increment 原因如下:
因为总是先计算乘法,所以我们将 x++ 乘以 x。请记住,x 的值为 2。
这是数学表达式中的样子:
x = 1;
x = 1+1+2+1*3
我们将 x++ 乘以 x。记住,x 是 2。所以它看起来像这样:
x = 1+1 +(2+1{2})
现在我们将计算括号内的数字。
2+1*2 = 6
之后,我们可以将 2 与 6 相加得到 8。
2+6 = 8
这就是为什么。
答案 3 :(得分:0)
x = ++x + (x++ * x)
将其视为数学运算,从左到右。
++x = x is now 2
x++ = x is now 3 but the showed value remains 2
x = is 3
x = 2 + (2 * 3)
x = 8