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[] | ++--为一元前自增 | <- |
.* ->* | 取指向成员的指针 | -> |
* / % | 算术运算符 | -> |
+ - | 算术运算符 | -> |
<< >> | 移位运算符 | -> |
< <= > >= | 关系运算符 | -> |
== != | 关系运算符 | -> |
& | 按位与 | -> |
^ | 按位异或 | -> |
| | 按位或 | -> |
&& | 逻辑与 | -> |
|| | 逻辑或 | -> |
?: | 条件运算符 | <- |
= += -= *= /= %= &= ^= |= <<= >>= | 赋值运算符 | <- |
, | 逗号运算符 | -> |
注:从上到下优先级递减!
总结:初单算移关,位逻条赋逗!(请一定记住这句话,虽然不是很顺口)