我有以下变量decelrations,赋值和变量declerations
变量e是一个表达式语句,它应该返回表达式中的evaulated变量的值;
e变量中opperators的预设顺序是什么?
计算它等于= 60;
使用计算器我得到422;
int a, b, c, d;
a = 10;
b = 2;
c = 1;
d = 20;
e = a + b * d / c + a + b / d;
e = 10 + 2 * 20 / 1 + 10 + 2 / 20;
e = 60;
答案 0 :(得分:3)
实际上答案是60.1
,但由于variables
显示为60
。它发生在下面
10 + (2 * (20 / 1)) + 10 + (int)(2 / 20) = 10 + (2 * 20) + 10 + (int)0.1
= 10 + 40 + 10 + 0 = 60
答案 1 :(得分:2)
Here is a link概述了运算符优先级。至于你的结果,这也可以归结为整数除法(它取决于结果的底线;例如,2/20 = 0
)。
答案 2 :(得分:0)
就像在学校一样,乘法和除法优先于加法。所以你有:
10 + 2 * 20 / 1 + 10 + 2 / 20 = 10 + 40 + 10 + 0 = 60
答案 3 :(得分:0)
* takes first precedence so first, 2*20 =40, 10 + 40 / 1 + 10 + 2 / 20;
/ takes precedence so , 10 + 40 + 10 + 0;
+ takes precedence so, 60
以下是运营商优先级的链接:Operator precedence