C语言:运算符优先级和结合性一览表

C语言 基础入门—-目录

运算符

C语言的运算符可分为以下10类:

  1. 算术运算符
    用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(–)共七种。
  2. 关系运算符
    用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
  3. 逻辑运算符
    用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
  4. 位操作运算符
    参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
  5. 赋值运算符
    用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
  6. 条件运算符
    这是一个三目运算符,用于条件求值( ?: )。
  7. 逗号运算符
    用于把若干表达式组合成一个表达式(,)。
  8. 指针运算符
    用于取内容(*)和取地址(&)二种运算。
  9. 求字节数运算符
    用于计算数据类型所占的字节数(sizeof)。
  10. 特殊运算符
    有括号(),下标[],成员(→,.)等几种。

运算符优先级

优先级是用来标识运算符在表达式中的运算顺序的,在求解表达式的值的时候,总是先按运算符的优先次序由高到低进行操作。
在C语言中,运算符的运算优先级共分为15 级。1 级最高,15级最低。
在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

运算符结合性

在C语言中各运算符的结合性分为两种:

  • 从左到右
  • 从右到左

运算符优先级和结合性一览表

优先级运算符名称和含义使用型式结合方向种类说明
1[]数组下标数组名[常量表达式]从左到右特殊运算符
()圆括号(表达式)
函数名(形参表)
.成员选择(对象)对象.成员
->成员选择(指针)对象指针->成员名
2负号运算符– 表达式从右到左单目运算符
(类型)强制类型转换(数据类型)表达式
++自增运算符++变量名
变量名++
算术运算符单目运算符
自减运算符–变量名
变量名–
单目运算符
*取值运算符 *指针变量指针运算符单目运算符
&取地址运算符&变量名单目运算符
!逻辑非运算符 !表达式逻辑作运算符单目运算符
~按位取反运算符~表达式位操作运算符单目运算符
sizeof长度运算符sizeof(表达式)求字节数运算符
3/表达式 / 表达式从左到右算术运算符双目运算符
*表达式*表达式双目运算符
%余数(取模)整型表达式%整型表达式双目运算符
4+表达式 + 表达式从左到右双目运算符
表达式 – 表达式双目运算符
5<<左移变量<<表达式从左到右位操作运算符双目运算符
>>右移变量>>表达式双目运算符
6>大于表达式 > 表达式从左到右关系运算符双目运算符
>=大于等于表达式 >= 表达式双目运算符
<小于表达式 < 表达式双目运算符
<=小于等于表达式 <= 表达式双目运算符
7==等于表达式 == 表达式双目运算符
!=不等于表达式 != 表达式双目运算符
8&按位与表达式 & 表达式从左到右位操作运算符双目运算符
9^按位异或表达式 ^ 表达式从左到右双目运算符
10|按位或表达式 | 表达式从左到右双目运算符
11&&逻辑与表达式 && 表达式从左到右逻辑运算符双目运算符
12||逻辑或表达式 || 表达式从左到右双目运算符
13?:条件运算符表达式1? 表达式2: 表达式3从右到左条件运算符三目运算符
14=赋值运算符变量 = 表达式从右到左赋值运算符
/=除后赋值变量 /= 表达式
*=乘后赋值变量 *= 表达式
%=取模后赋值变量 %= 表达式
+=加后赋值变量 += 表达式
-=减后赋值变量 -= 表达式
<<=左移后赋值变量 <<= 表达式
>>=右移后赋值变量 >>= 表达式
&=按位与后赋值变量 &= 表达式
^=按位异或后赋值变量 ^= 表达式
|=按位或后赋值变量 |= 表达式
15,逗号运算符表达式,表达式,…从左到右逗号运算符
    原文作者:根号五
    原文地址: https://blog.csdn.net/MQ0522/article/details/114578681
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞