C/C++中的运算符优先级总结
下面的内容是我开始学C/C++时所列出的, 以前不知道CppRefs这个网站, so... 请随时参考以下两个页面:
http://en.cppreference.com/w/c/language/operator_precedence
http://en.cppreference.com/w/cpp/language/operator_precedence
C语言中的运算符
| 说明 | 运算符 | 结合性 |
| 初等运算符 | () [] -> . | -> |
| 单目运算符 | ! ~ ++ -- - (类型) * & sizeof | <- |
| 算术运算符 | * / % | -> |
| 算术运算符 | + - | -> |
| 移位运算符 | << >> | -> |
| 关系运算符 | > >= < <= | -> |
| 关系运算符 | == != | -> |
| 按位与 | & | -> |
| 按位异或 | ^ | -> |
| 按位或 | | | -> |
| 逻辑与 | && | -> |
| 逻辑或 | || | -> |
| 条件运算符 | ?: | <- |
| 赋值运算符 | = += -= *= /= %= <<= >>= &= ^= |= | <- |
| 逗号运算符 | , | -> |
C++语言中的运算符
| 运算符 | 描述 | 结合性 |
| :: | 二元作用域 一元作用域 | -> |
() [] . -> ++ -- | 初等/类型转换 ++--为一元后自增 | -> |
| ++ -- + - ! ~ (类型) sizeof & * new new[] delete delete[] | ++--为一元前自增 | <- |
| .* ->* | 取指向成员的指针 | -> |
| * / % | 算术运算符 | -> |
| + - | 算术运算符 | -> |
| << >> | 移位运算符 | -> |
| < <= > >= | 关系运算符 | -> |
| == != | 关系运算符 | -> |
| & | 按位与 | -> |
| ^ | 按位异或 | -> |
| | | 按位或 | -> |
| && | 逻辑与 | -> |
| || | 逻辑或 | -> |
| ?: | 条件运算符 | <- |
| = += -= *= /= %= &= ^= |= <<= >>= | 赋值运算符 | <- |
| , | 逗号运算符 | -> |
注:从上到下优先级递减!
总结:初单算移关,位逻条赋逗!(请一定记住这句话,虽然不是很顺口)