C++程序设计语言操作符的优先级和结合性
优先级 | 操作符 | 结合性 |
1 | :: | 左—>右 |
2 | . -> [] () | 左—>右 |
3 | ++ -- ~ ! + - & * ( ) sizeof new delete castname_cast<type> 单目操作符 | 右—>左 |
4 | .* ->* | 左—>右 |
5 | * / % | 左—>右 |
6 | + - | 左—>右 |
7 | << >> | 左—>右 |
8 | < <= > >= | 左—>右 |
9 | == != | 左—>右 |
10 | & | 左—>右 |
11 | ^ | 左—>右 |
12 | | | 左—>右 |
13 | && | 左—>右 |
14 | || | 左—>右 |
15 | ? : 三目操作符 | 右—>左 |
16 | = *= /= %= += -= <<= >>= &= |= ^= 赋值操作符 | 右—>左 |
17 | throw | 左—>右 |
18 | , | 左—>右 |
说明:
1、 第3级中的castname分别是static、dynamic、reinterpret、const中的一种。
2、 只有第3级操作符是单目操作符,只有第16级操作符是赋值操作符,第15级操作符是唯一的三目操作符。所有的单目、赋值和三目操作符都是右结合的,其余的都是左结合的。