运算符的优先级决定了表达式中运算执行的先后次序,优先级高的运算符最先被执行。
下边是一个简单的事例:
3+4*5//估算结果为23
加法运算符(“*”)比起乘法运算符(“+”)有着更高的优先级,所以它会被最先执行。
结合性
结合性决定了拥有相同优先级的运算符的执行次序。考虑下边这个表达式:
aOPbOPc
左结合(从左到右估算)相当于把右边的子表达式加上小括弧(aOPb)OPc,类似的,右关联(从右到左估算)相当于aOP(bOPc)。形参运算符是右关联的,所以你可以如此写:
a=b=5;
结果a和b的值就会成为5。这是由于形参运算符的返回结果就是形参运算符左侧的那种值,具体过程是:b被形参为5,之后a也被形参为b=5的返回值,也就是5。
汇总表
下边的表将所有运算符根据优先级的不同从高到低排列。
#5:1:e:0:6:c:2:8:7:6:0:5:8:7:d:c:a:b:f:d:c:f:c:a:9:9:9:5:6:b:7:7#
#5:3:4:0:e:9:5:d:3:5:5:d:d:5:6:d:5:5:f:c:5:e:2:1:4:9:6:3:6:8:4:3#
#9:3:1:e:4:b:4:6:6:f:9:a:4:5:7:8:8:3:0:9:a:e:f:e:8:f:3:c:2:9:c:a#
#9:3:c:c:1:b:3:e:4:4:6:7:a:0:c:0:a:6:7:2:2:5:7:7:9:6:6:f:7:3:3:f#