好了,在我们继续之前,我们先来做一道数学题
1+1*2=?
一道小学数学题,在你小学数学合格的情况下,你应该回答为2而不是4
为什么?
因为我们都知道的运算法则:先乘除后加减
在我们初中学习了乘方后,对于下面的题目
3*2^2 (这里的^代表数学中的乘方)
我们也能很快的得出正确的答案:12,而不是36
因为应该先计算乘方。
但是,对于下面的这个式子
(3*2)^2
它的值便是36,因为括号中的内容应该最先计算
从上面不难发现,对于一个式子中出现的各种计算,人们规定了他们运算的先后顺序
这种顺序便是优先级。只有按照正确的顺序进行计算,得出的结果才是合理且正确的
在编程中,同样有着优先级的规定
下面这个简单的表中给出了我们已经学习过的运算的优先级
优先级(不完整)符号名称或含义用法
1()圆括号(表达式)
2+一元正号+表达式
-一元负号-表达式
(type)强制类型转换(double)123
++自增++变量
变量++
--自减--变量
变量--
sizeof长度运算符sizeof var
3*算数乘号表达式1*表达式2
/算术除号表达式1/表达式2
%求余表达式1%表达式2
4+算术+表达式1+表达式2
-算术减号表达式1-表达式2