引言:
我们小时候学习加减乘除的时候:
- 先算乘除,后算加减
- 从左往右依次计算
这个先算乘除,后算加减,就是一个优先级问题;从左往右依次计算,就是结合性问题,在同等优先级下,是从左往右运算的,就是说,加减乘除都是左结合的运算。
总的来说:优先级和结合性都是为了解决计算中的次序问题。
1.优先级表
优先级从上往下依次降低:
2. 结合性问题
- 右结合:赋值运算符、三目运算符、单目运算符
- 左结合:其他所有的都是左结合
- 左结合非常好理解,因为我们一直采用的运算都是自左往右运算,这三个右结合的是新鲜玩意儿,赋值运算符又常用,我举两个代码例子帮助理解:
// 结合性问题
// 三目运算 ?:
int a = 3;
int b = 2;
int c = 1