a - b * c
相当于 a-(b*c)。如果想让操作数以不同的方式组合在一起,则必须使用括号:(a - b) * c
如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左。例如,算术运算符和操作数的组合方式是从左到右,赋值运算符则是从右到左,如表 1 所示。表达式 | 结合律 | 组合方式 |
---|---|---|
a/b%c | 从左到右 | (a/b)%c |
a=b=c | 从右到左 | a=(b=c) |
优先级 | 运算符 | 结合律 |
---|---|---|
1 | 后缀运算符:[] () · -> ++ --(类型名称){列表} | 从左到右 |
2 | 一元运算符:++ -- ! ~ + - * & sizeof_Alignof | 从右到左 |
3 | 类型转换运算符:(类型名称) | 从右到左 |
4 | 乘除法运算符:* / % | 从左到右 |
5 | 加减法运算符:+ - | 从左到右 |
6 | 移位运算符:<< >> | 从左到右 |
7 | 关系运算符:<<= >>= | 从左到右 |
8 | 相等运算符:== != | 从左到右 |
9 | 位运算符 AND:& | 从左到右 |
10 | 位运算符 XOR:^ | 从左到右 |
11 | 位运算符 OR:| | 从左到右 |
12 | 逻辑运算符 AND:&& | 从左到右 |
13 | 逻辑运算符 OR:|| | 从左到右 |
14 | 条件运算符:?: | 从右到左 |
15 |
赋值运算符: = += -= *= /= %= &= ^= |= <<= >>= |
从右到左 |
16 | 逗号运算符:, | 从左到右 |
本文链接:http://task.lmcjl.com/news/16034.html