有谁知道为什么y = 11? 它是21/12 = 1.75,但它返回11。
int i=3, j=5, *p = &i, *q = &j, *r;
int y = 7 **p / *q + 7;
答案 0 :(得分:3)
7 * *p / *q + 7
7 * (3) / (5) + 7 Substitution
21 / 5 + 7
4 + 7 Integer Division
11
答案 1 :(得分:1)
操作顺序。 7 * 3/5 + 7是21/5 + 7.由于你正在使用整数,那就是4 + 7 = 11.
答案 2 :(得分:1)
运算符优先级 - 使用括号表示评估顺序:
int y = ((7 * *p) / *q) + 7;
7 * 3/5 = 4
4 + 7 = 11
答案 3 :(得分:1)
所有操作都以整数形式完成,而不是浮点操作。
让我们分开吧
7 * (*p) / (*q) + 7
7 * *&i / *&j + 7
7 * 3 / 5 + 7
21 / 5 + 7
4 + 7
11
答案 4 :(得分:1)
正确,你的表达式评估为:
(7* 3)/5 + 7
= 4 + 7
等于11