c 运算符优先级顺序速记

前言

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

速记口诀

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

速记口诀详解

小中箭点 单右左

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

单右左

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

算 移 比 等 与 异 或

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

and 或者 三元 赋

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

逗号最低 牢记住

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

备注解释

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

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

结合表格记忆

运算符 结合性 速记 解释
() [] -> . 自左向右 小中箭点 小括号(函数调用) 中括号, 箭头, 点号
! ~ ++ -- - (type) * & sizeof 自右向左 单右左 单目运算符, 结合律是右往左
* / % 自左向右 乘除mod
+ - 自左向右 加减
<< >> 自左向右 移位
< <= > >= 自左向右 小于, 小于等于, 大于 大于等于
== != 自左向右 等于, 不等于
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右 and
|| 自左向右 或者
?: 自右向左 三元
assignments 自右向左
, 自左向右 逗号最低牢记住
相关推荐
jjjxxxhhh1233 分钟前
C++ 模板是为了解决啥问题
开发语言·c++·算法
gz94563 分钟前
Virtualbox安装ubuntu20虚拟机无法打开终端
java·linux·开发语言
奔跑的犀牛先生17 分钟前
C#学习1:初接触,C#的一些基础,和相关报错
开发语言·c#
半夏知半秋1 小时前
lua debug相关方法详解
开发语言·学习·单元测试·lua
Andy01_1 小时前
Java八股汇总【MySQL】
java·开发语言·mysql
Ning_.1 小时前
力扣第116题:填充每个节点的下一个右侧节点指针 - C语言解法
c语言·算法·leetcode
坊钰1 小时前
【Java 数据结构】合并两个有序链表
java·开发语言·数据结构·学习·链表
挥剑决浮云 -2 小时前
STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器
c语言·经验分享·stm32·单片机·嵌入式硬件·学习
工业甲酰苯胺2 小时前
聊一聊 C#线程池 的线程动态注入
java·开发语言·c#
zfenggo2 小时前
c/c++ 无法跳转定义
c语言·开发语言·c++