10301:优先级与括号
题目
分别计算并输出 3 + 2 * 5 与 (3 + 2) * 5,并解释结果为何不同。
解析
乘法的优先级高于加法,所以第一个表达式等价于 3 + (2 * 5)。第二个表达式中的括号要求先完成加法。
优先级决定表达式如何分组,不等同于规定各子表达式的实际求值先后。
解析
c
#include <stdio.h>
int main(void) {
int first = 3 + 2 * 5;
int second = (3 + 2) * 5;
printf("%d\n", first);
printf("%d\n", second);
return 0;
}1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
输出:
text
13
251
2
2