c 运算符优先级顺序速记

前言

在掌握C语言中的运算符及其优先级时,有一套简洁而高效的速记口诀可以帮助我们迅速记住它们的顺序和用法。这些口诀不仅便于记忆,而且能够在编程实践中快速定位和解决问题。下面是这套速记口诀的详细解读和一些额外的说明,旨在帮助读者更好地理解和应用。

速记口诀

小中箭点 单右左
算 移 比 等 与 异 或
and 或者 三元 赋
逗号最低 牢记住

速记口诀详解

小中箭点 单右左

这一部分涵盖了C语言中具有最高优先级的运算符,包括函数调用的小括号(),数组下标的中括号[],结构体指针访问的箭头->,以及结构体成员访问的点号.。这些运算符的共同特点是它们的结合性都是自左向右,表示在表达式中,当有多个相同优先级的运算符时,运算的顺序是从左到右。

单右左

这部分包括了一系列单目运算符,如逻辑非!,位反~,自增++,自减--,负号-,强制类型转换(type),解引用*,取地址&,以及sizeof运算符。它们的结合性是自右向左,意味着在包含多个单目运算符的表达式中,运算顺序从右至左进行。

算 移 比 等 与 异 或

这一系列口诀代表了运算符优先级从高到低的顺序。"算"代表乘法*、除法/、取模%运算符;"移"指的是位移运算符,包括左移<<和右移>>;"比"涉及比较运算符,如小于<、小于等于<=、大于>、大于等于>=;"等"指等于==和不等于!=运算符;"与"、"异"、"或"分别代表位与&、位异或^、位或|运算符。

and 或者 三元 赋

这部分描述了逻辑与&&、逻辑或||、三元条件运算符?:以及赋值运算符,如简单赋值=和复合赋值+=-=等。它们的优先级依次降低,并且除三元运算符外,其余的结合性都是自左向右。

逗号最低 牢记住

逗号运算符,具有最低的优先级,但在连接多个表达式,尤其是在for循环的初始化和更新部分时非常有用。它的结合性是自左向右。

备注解释

  • 不同优先级空格会分开:在口诀中,不同优先级的运算符之间用空格分隔,以便区分和记忆。
  • 相同的之间没有空格:具有相同优先级的运算符之间没有空格,表示它们在优先级上是等价的,如"小中箭点"中的运算符。
  • 按照结合性来分词:在记忆时,还需要考虑运算符的结合性,这对于理解和应用表达式中运算符的执行顺序至关重要。

通过掌握这些速记口诀,程序员可以更快地理解和记忆C语言中众多运算符的优先级和结合性,这对于编写正确无误的代码来说是非常重要的。希望这篇文章能够为你的编程学习之路提供帮助和指导。

结合表格记忆

运算符 结合性 速记 解释
() [] -> . 自左向右 小中箭点 小括号(函数调用) 中括号, 箭头, 点号
! ~ ++ -- - (type) * & sizeof 自右向左 单右左 单目运算符, 结合律是右往左
* / % 自左向右 乘除mod
+ - 自左向右 加减
<< >> 自左向右 移位
< <= > >= 自左向右 小于, 小于等于, 大于 大于等于
== != 自左向右 等于, 不等于
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右 and
|| 自左向右 或者
?: 自右向左 三元
assignments 自右向左
, 自左向右 逗号最低牢记住
相关推荐
啟明起鸣2 分钟前
【网络编程】从与 TCP 服务器的对比中探讨出 UDP 协议服务器的并发方案(C 语言)
服务器·c语言·开发语言·网络·tcp/ip·udp
007php00710 分钟前
Redis高级面试题解析:深入理解Redis的工作原理与优化策略
java·开发语言·redis·nginx·缓存·面试·职场和发展
九章云极AladdinEdu23 分钟前
深度学习优化器进化史:从SGD到AdamW的原理与选择
linux·服务器·开发语言·网络·人工智能·深度学习·gpu算力
axban25 分钟前
QT M/V架构开发实战:QStandardItemModel介绍
开发语言·数据库·qt
猿究院-赵晨鹤39 分钟前
String、StringBuffer 和 StringBuilder 的区别
java·开发语言
I'm a winner1 小时前
第五章:Python 数据结构:列表、元组与字典(一)
开发语言·数据结构·python
葵野寺1 小时前
【RelayMQ】基于 Java 实现轻量级消息队列(九)
java·开发语言·rabbitmq·java-rabbitmq
番茄灭世神1 小时前
柔性数组与队列杂记
c语言
nightunderblackcat1 小时前
新手向:C语言、Java、Python 的选择与未来指南
java·c语言·python
大白同学4211 小时前
【C++】C++11介绍(Ⅱ)
开发语言·c++