【C语言深入】C语言运算符优先级

  版权信息:
● 本博客使用CC 3.0协议,转载请保留该信息。
● 原文作者: 戴晓天 @ 云飞机器人实验室
● 原文地址: 【C语言深入】C语言运算符优先级

运算符优先级是C语言重要的组成部分,也是程序bug的常见产生源。需要特别注意的有:

  1. 赋值在C语言中的优先级是最低的;
  2. 位运算的优先级高于逻辑运算;
  3. 关系运算符的优先级低于移位,但是高于位运算;
  4. 单目运算的优先级最高;
  5. 同优先级的运算符按照从左向右的顺序解释。

Table 1. C语言运算符优先级

成员括号 ()   []   ->   .
单目运算  !   ~   ++   —   –   (type)   *   &   sizeof
算数运算 *   /   %   +   –
移位运算 <<   >>
关系运算 >   <   >=   <=
==   !=
位与运算 &
^
|
逻辑运算  &&
||
三目运算  ?:
赋值运算  =   +=   -=

 

【版本修订】

v1.1 2015.12.05 增加了表格可读性;增加了注意事项列表。

%d bloggers like this: