当前位置: 首页 > news >正文

C语言运算符优先级速记口诀

在C语言中,运算符优先级是写出正确且高效代码的关键。为了帮助你更好地记住这些优先级,我整理了一套记忆技巧速查表,让你不再混淆!


📌 C语言运算符优先级速记口诀

口诀:
“单算移关与,异或逻条赋”
(单目 > 算术 > 移位 > 关系 > 位与 > 异或 > 位或 > 逻辑 > 条件 > 赋值)

1️⃣ 单目运算符(最高优先级)

  • ++ --(自增/自减)
  • ! ~(逻辑非、按位取反)
  • + -(正负号,如 -5
  • (type)(强制类型转换)
  • * &(指针、取地址)
  • sizeof

记忆技巧:

“单枪匹马闯天下”(单目运算符优先级最高,单独行动)


2️⃣ 算术运算符

  • * / %(乘、除、取模)
  • + -(加、减)

记忆技巧:

“先乘除,后加减”(和数学一样)


3️⃣ 移位运算符

  • << >>(左移、右移)

记忆技巧:

“移动位置,但不如算术重要”


4️⃣ 关系运算符

  • < <= > >=(比较大小)
  • == !=(等于、不等于)

记忆技巧:

“先比大小,再判等”


5️⃣ 位运算符

  • &(按位与)
  • ^(按位异或)
  • |(按位或)

记忆技巧:

“与或非,按位算”& > ^ > |


6️⃣ 逻辑运算符

  • &&(逻辑与)
  • ||(逻辑或)

记忆技巧:

“先与后或”&&|| 优先级高)


7️⃣ 条件运算符(三目运算符)

  • ? :(如 a > b ? a : b

记忆技巧:

“问号冒号,最后决定”


8️⃣ 赋值运算符(最低优先级)

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

记忆技巧:

“赋值总是最后算”


📊 运算符优先级完整速查表(从高到低)

优先级运算符描述结合性
1() [] -> . ++ --函数调用、数组、成员访问、自增自减左→右
2! ~ + - * & sizeof (type)单目运算符右→左
3* / %乘、除、取模左→右
4+ -加、减左→右
5<< >>左移、右移左→右
6< <= > >=关系比较左→右
7== !=等于、不等于左→右
8&按位与左→右
9^按位异或左→右
10|按位或左→右
11&&逻辑与左→右
12||逻辑或左→右
13? :三目运算符右→左
14= += -= *= /= %= <<= >>= &= ^= |=赋值运算符右→左
15,逗号运算符左→右

💡 如何避免混淆?

  1. 多用括号(a + b) * ca + b * c 更清晰。
  2. 记住关键顺序
    • 单目 > 算术 > 移位 > 关系 > 位运算 > 逻辑 > 条件 > 赋值
  3. 测试代码:不确定时,写个小程序验证优先级。

📝 测试示例

#include <stdio.h>

int main() {
    int a = 5, b = 3, c = 2;
    int result = a + b * c;  // 先算 b * c,再 + a → 5 + 6 = 11
    printf("%d\n", result);  // 输出 11
    
    result = (a + b) * c;    // 先算 a + b,再 * c → 8 * 2 = 16
    printf("%d\n", result);  // 输出 16
    
    return 0;
}

🎯 总结

口诀“单算移关与,异或逻条赋”
关键顺序:单目 > 算术 > 移位 > 关系 > 位运算 > 逻辑 > 条件 > 赋值
最佳实践多用括号,避免歧义!

这样记忆后,C语言的运算符优先级就不再是难题啦! 🚀


文章转载自:

http://RYZJFby0.trhLb.cn
http://8dvdzsgw.trhLb.cn
http://qcZ5k3KO.trhLb.cn
http://mlbgfgLi.trhLb.cn
http://5EM0DpxF.trhLb.cn
http://elI1pM9K.trhLb.cn
http://7E78rzD6.trhLb.cn
http://3wbH4hds.trhLb.cn
http://C8gZpuhp.trhLb.cn
http://wzCFxWya.trhLb.cn
http://II50LoiI.trhLb.cn
http://r9ZwxHRp.trhLb.cn
http://1GK1FeYI.trhLb.cn
http://fz7QbiJA.trhLb.cn
http://X41X908M.trhLb.cn
http://JY4B5IOS.trhLb.cn
http://mfo2Ojbo.trhLb.cn
http://Wk5aNQaO.trhLb.cn
http://8WRvlA0k.trhLb.cn
http://ZZdNX25W.trhLb.cn
http://XVLr88AV.trhLb.cn
http://VuZaoJ5G.trhLb.cn
http://acwJ2grb.trhLb.cn
http://qlTYMXDN.trhLb.cn
http://3Ihndjsz.trhLb.cn
http://ozeM2DID.trhLb.cn
http://l5IPanWG.trhLb.cn
http://WxZdVUpz.trhLb.cn
http://0c4tvcDB.trhLb.cn
http://AObbNoOQ.trhLb.cn
http://www.dtcms.com/a/128203.html

相关文章:

  • 基于查表法的 CRC8 / CRC16 / CRC32校验解析
  • PowerBI 条形图显示数值和百分比
  • Vue使用el-table给每一行数据上面增加一行自定义合并行
  • C++算法(1):stringstream详解,高效字符串处理与类型转换的利器
  • 【NLP 55、强化学习与NLP】
  • OpenHarmony Camera开发指导(二):相机设备管理(ArkTS)
  • ALOPS智能化运维管理平台
  • 浅析Centos7安装Oracle12数据库
  • 详解正则表达式中的?:、?= 、 ?! 、?<=、?<!
  • 火语言RPA--增加减少时间
  • EN控制同步整流WD1020 ,3.0V-21V 的宽 VIN 输入范围,0.9V-20V 的宽输出电压范围
  • Android activity属性taskAffinity的作用
  • call、bind、apply
  • MySQL Error Log
  • 【第16届】蓝桥杯C++b组--记录一次被薄纱的心情
  • 艾伦·图灵:计算机科学与人工智能之父
  • 08-JVM 面试题-mk
  • KWDB创作者计划—KWDB认知引擎:数据流动架构与时空感知计算的范式突破
  • 20250412_代码笔记_CVRProblemDef
  • js 颜色转换分析
  • 【Flink运行时架构】核心组件
  • 优化方法介绍(一)
  • PCIe 5.0光学SSD原型问世!
  • 2025-4-11 情绪周期视角复盘(mini)
  • java -jar与java -cp的区别
  • 操作系统 ------ 五种IO模型
  • 前端工程化-包管理NPM-package.json 和 package-lock.json 详解
  • 小甲鱼第004讲:变量和字符串(下)| 课后测试题及答案
  • Git基础知识
  • 蓝桥杯单片机刷题——ADC测量电位器的电压