C语言当中有众多的运算符,实际开发编码过程中,也不会仅仅是a+b这样的简单的表达式,常常是多个变量、多个运算符组合而成的复合表达式,因此我们需要明白哪个优先级高,应该先算哪个,就像我们小学学的四则运算符,乘除的优先级高于加减是一样的道理。


下面我们将C语言中的各个运算符列表如下,按照优先级从高到低,即最前面,数字越小的优先级越高,越优先算。


优先级

运算符名称或含义使用形式结合方向说明





       1

   []

数组下标数组名[长度]





  从左往右


()小括号(表达式)或
函数名(形参表)

  .取成员结构体名.成员
  ->指针结构体指针->成员








       2

  -负号运算符-表达式








  从右往左

单目运算符
()强制类型转换(数据类型)表达式
  ++自增运算符++变量或变量++单目运算符
  --自减运算符--变量或变量--单目运算符
  *取内容*指针变量单目运算符
  &取地址&变量名单目运算符
  !逻辑非!表达式单目运算符
  ~按位取反~整型表达式
单目运算符
  sizeof求长度sizeof(表达式)单目运算符




       3 

 /表达式 / 表达式




  从左往右

双目运算符
 *表达式 * 表达式双目运算符
  %取余表达式 / 表达式双目运算符



       4

 +表达式+表达式



  从左往右

双目运算符
  -表达式-表达式双目运算符



       5

<<左移变量<<表达式



  从左往右

双目运算符
>>右移变量<<表达式双目运算符





       6

>大于表达式>表达式





  从左往右

双目运算符
>=大于或等于表达式>=表达式双目运算符
<小于表达式<表达式双目运算符
<=小于或等于表达式<=表达式双目运算符



       7

 ==等于表达式==表达式



  从左往右

双目运算符
 !=不等于表达式!=表达式双目运算符
       8  &按位与表达式&表达式  从左往右双目运算符
       9  ^按位异或表达式^表达式  从左往右 双目运算符
      10  |按位或表达式|表达式  从左往右双目运算符
      11&&逻辑与表达式&&表达式  从左往右双目运算符
      12||逻辑或表达式||表达式  从左往右双目运算符


      13

?:条件运算符表达式1? 表达式2: 表达式3


  从右往左


三目运算符













      14

=赋值运算符变量=表达式













  从右往左













双目运算符

/=除后再赋值变量/=表达式
*=乘后再赋值变量*=表达式
%=取余后再赋值变量%=表达式
+=加后再赋值变量+=表达式
-=减后再赋值变量-=表达式
<<=左移再赋值变量<<=表达式
>>=右移再赋值变量>>=表达式
&=按位与再赋值变量&=表达式
^=按位异或再赋值变量^=表达式
|=按位或再赋值变量|=表达式
      15
,逗号表达式表达式,表达式,…  从左往右


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)