运算符优先级是C语言重要的组成部分,也是程序bug的常见产生源。需要特别注意的有:
- 赋值在C语言中的优先级是最低的;
- 位运算的优先级高于逻辑运算;
- 关系运算符的优先级低于移位,但是高于位运算;
- 单目运算的优先级最高;
- 同优先级的运算符按照从左向右的顺序解释。
Table 1. C语言运算符优先级
成员括号 | () [] -> . |
单目运算 | ! ~ ++ — – (type) * & sizeof |
算数运算 | * / % + – |
移位运算 | << >> |
关系运算 | > < >= <= |
== != | |
位与运算 | & |
^ | |
| | |
逻辑运算 | && |
|| | |
三目运算 | ?: |
赋值运算 | = += -= |
【版本修订】
v1.1 2015.12.05 增加了表格可读性;增加了注意事项列表。
>> 本文章版权归作者所有,如需转载请联系作者授权许可。
>> 原文来自: 云飞机器人实验室
>> 原文地址: C语言 | C语言运算符优先级
>> 关于我们: 关于云飞实验室
>> 支持我们: 帮助我们可持续发展