首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言】运算符优先级列表(超详细)

【C语言】运算符优先级列表(超详细)

作者头像
苏兮
发布2026-01-13 17:11:24
发布2026-01-13 17:11:24
3780
举报

C语言学习

前言:每个C程序员都经历过的痛

“*p++到底先算哪个?” “为什么a & b == c和我想的不一样?” “每次写复杂表达式都要试半天…”

相信每个C程序员都曾为运算符优先级抓狂过!网上的资料要么不全,要么解释不清,每次要用的时候死活找不到想要的。经过无数次踩坑和整理,我终于总结出了这份最全最实用的C语言运算符优先级指南,分享给同样被这个问题困扰的你!


C语言运算符优先级完整列表

优先级

运算符

描述

结合性

示例

1

() [] -> . :: ++ --

函数调用/数组下标/成员访问/后置自增自减

左到右

arr[2], obj.member, i++

2

++ -- + - ! ~ (type) * & sizeof

前置自增自减/正负号/逻辑非/按位取反/强制类型转换/解引用/取地址/大小计算

右到左

++i, -num, !flag, *ptr

3

* / %

乘除取模

左到右

a * b, 5 % 2

4

+ -

加减

左到右

x + y - z

5

<< >>

位移

左到右

n << 2, val >> 1

6

< <= > >=

关系比较

左到右

a > b, x <= y

7

== !=

相等比较

左到右

x == y, a != 0

8

&

按位与

左到右

flags & MASK

9

^

按位异或

左到右

a ^ b

10

|

按位或

左到右

opt1 | opt2

11

&&

逻辑与

左到右

cond1 && cond2

12

||

逻辑或

左到右

flag1 || flag2

13

?:

条件运算符

右到左

x > 0 ? x : -x

14

= += -= *= /= %= <<= >>= &= ^= |=

赋值运算符

右到左

a = b, x += 5

15

,

逗号运算符

左到右

i++, j--

关键说明

优先级规则

  • 数字越小优先级越高
  • 同优先级按结合性计算

常见易错点

代码语言:javascript
复制
*p++;    // 等价于 *(p++)
a & b == c;  // 等价于 a & (b == c)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C语言学习
  • 前言:每个C程序员都经历过的痛
  • C语言运算符优先级完整列表
    • 关键说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档