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

了解常见C语言操作符

hello 大家好欢迎来到我的博客


之前我们认识了常见的数据类型,同时也学会了如何让使用变量。

认识了数据,接下来就要学习操作数据的工具——操作符

此篇给大家讲解常见操作符,其他复杂操作符后续给大家单独讲解

一、什么操作符

C 语言标准中,操作符(Operator)是:

语法上的终结符(token),用于指定对一个或多个操作数(operand)执行的运算或操作,这些操作包括计算、赋值、类型转换、内存访问、表达式求值控制等。

比如我们常见的+=&&都属于操作符。

操作符与操作数结合,构成表达式(expression),每个操作符的行为、优先级、结合性、类型转换规则,均由标准明确规定。

二、操作数与表达式

2.1 操作数

  • 标准定义:操作符执行运算时作用的数据实体,是运算的 “输入值”。
  • 常量操作数:如53.14'A'
  • 变量操作数:如 age、num
  • 表达式操作数:如:(a+b)*6中操作数 :a、b、(a+b)、6 、(a+b)*6 表达式本身也可以作为操作数

2.2 表达式

  • 标准定义:由操作符 + 操作数按语法规则组合而成,能够计算出一个值的语法单元。
类型示例说明
算术表达式a + bx * 3用算术操作符组合,结果为数值
关系表达式a > bx == 5用关系操作符组合,结果为0(假)或1(真)
逻辑表达式a > b && x < 10用逻辑操作符组合,结果为01,存在短路求值
赋值表达式a = 10x += 3用赋值操作符组合,结果为赋值后的值
逗号表达式a = 1, b = 2, a + b用逗号操作符组合,结果为最后一个表达式的值

三、常见操作符

(一) 算数操作符

+ - * / %

+、-、* 操作符与数学中使用方法无区别,这里不为大家做过多的了解。

(1)/

  • 整数相除,舍去小数,只取整数部分
  • 如果希望得到浮点数,两个运算数中至少有一个浮点数

例如:5/2=2(5/2=2.5 舍去小数0.5); 5.0/2=2.5;5/2.0=2.5;

  • 结果的符号 :同号得正,异号得负
  • 除数不能为 0

(2)%

  • 取模/余运算符:返回两个整数相除的值。

注意:%能用于整数,不能用于浮点数

  • 结果的符号:取决于被除数(也就是第一个数)
  • 除数不能为 0

例如:11%5=1(11/5=2余1 取余结果为1);11%-5=2 ;-11%5=-2;

(二)赋值操作符

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

  • 连续赋值:a=b=c+3
  • 复合赋值:先运算再赋值

例如:a=a+10 等价于 a+=10;b=b*5 等价于 b*=5;

(三)单目操作符

常见单目操作符: ++ -- + -sizeof

单目操作符仅有一个操作数

(1)自增:++

  • 前置++:++a 先++后使用

  • 后置++:a++ 先使用后++

注:当a++与++a单独使用时 a++与++a 一样例如:int a=5 a++ 等于 ++a

(2)自减:

  • 前置--:--a 先--后使用
  • 后置--:a-- 先使用后--

同上,这里不再给大家做过多解释。

(3) 正与负 : + -

(4)sizeof 操作符:求类型 / 变量所占字节,是操作符不是函数

(四)关系操作符

> < >= <= == !=

常用来判断两个值的关系

注意

  • C语言中关系的结果只有两种:真 —1 假—0
  • ==是判断相等
  • =是赋值

例如:a==5 判断a是否等于5, a=5 给变量a赋值为5

(五)逻辑操作符

&& || !

  • 用于组合条件的判断,结果为1或0

(1)逻辑与 &&

  • &&判断的是“并且”关系
  • 两边都为真(1),结果才为真(1),只要有一个条件为假(0),结果就为假(0)
  • 短路:在A && B中,如果表达式 A 的结果为假(0),那么编译器会直接判定整个表达式为假,不再去执行或计算表达式 B

(2)逻辑或 ||

  • 判断的是“或者”关系
  • 只要有一个条件为真(1),结果就为(1);两边都为假(0),结果才为假(0)
  • 短路:如果||左边的表达式结果为真(1),那么右边的表达式就不会再执行,整个表达式的结果直接为 1。

(3)逻辑非

改变单个表达式的真假

  • 如果操作数为真(非0),结果为假(0);如果操作数为假(0),结果为真(1)

(六)条件操作符

条件操作符是C语言中“唯一 一个三目操作符”(需要三个操作数)

表达式1 ? 表达式2 : 表达式3

  • 如果表达式1为真,表达式2结果是整个表达式结果
  • 如果表达式1为假,表达式3结果是整个表达式结果

(七)逗号操作符

表达式1, 表达式2, ..., 表达式n

  • 从左至右一次执行每个表达式,整个逗号表达式的结果是最后一个表达式的值

(八)下标引用、函数调用和结构体成员访问操作符

  • 下标引用操作符[]:用于数组。例如arr[5][]就是操作符,arr5是操作数。
  • 函数调用操作符():用于调用函数。例如printf("Hello")()就是操作符
  • 结构体成员访问.:通过结构体变量访问成员。例如stu.name->:通过结构体指针访问成员。例如p_stu->name。(结构体篇详细讲)

四、操作符的优先级与结合性

敲黑板这个知识点非常重要!!!

  • 优先级:当一个表达式中出现了多个运算符时,决定运算符谁先算
  • 结合性(左结合/ 右结合):当多个优先级相同的运算符连续出现时,决定从哪边算

左结合:从左至右算

右结合:从右至左算

  • 常用优先级与结合性:
优先级运算符结合性操作符名称
1()[]->.左结合括号、数组、结构体成员
2!++--*&sizeof右结合逻辑非、自增减、指针、取地址、求字节大小
3*/%左结合乘、除、取余
4+-左结合加、减
5<<=>>=左结合大小比较
6==!=左结合相等、不等判断
7&&左结合逻辑与
8||左结合逻辑或
9?:右结合三目条件运算
10=+=-=*=/=右结合赋值运算
11,左结合逗号运算

大家可以通过这个网站进行全面的学习:https://en.cppreference.com/w/c/language/operator_precedence

优先级小tips:

在写代码的过程中不确定优先级就加()来控制运算顺序

此篇到这里就结束了,感谢大家的观看,感谢与我共同进步的你们!

http://www.zskr.cn/news/1396688.html

相关文章:

  • CAXA 焊接符号、焊缝符号
  • 二本+无特长,我靠AI应用能力进了大厂 普通人的差异化策略全复盘
  • 从记录到智能:企业考勤管理系统平台的技术演进与选型指南
  • 2025企业邮箱安全报告发布:AI攻击升级,技术与管理协同成防护趋势
  • 猜谜王中王!免费谜语大全 API,海量谜题一键获取,益智娱乐双丰收
  • Keil-5 实战指南:从零构建到高效调试
  • 华大MCU Flash写入卡死?别只盯着自己的函数,map文件里藏着真凶
  • 超低功耗MCU的轻量级HW-NAS:硬件约束下的微型CNN自动设计
  • 杰理SDK开发-杰理之家-修改APP中CID、VID、PID参数
  • 2026年AI风口已定!这4大高薪方向速码,大厂争抢的顶级岗位薪资直冲30W+
  • 大模型产品经理进阶指南:从零基础到实战,新手到专家的完整学习路径,
  • 毕业答辩 PPT 提速优选! 9 款实力派 AI 演示文稿工具全维度实测
  • 、AI行业薪资迎来爆发!年入50万已是普遍水准
  • 20个核心概念,让你秒懂AI(底层原理全解析)
  • 跨平台资源下载终极指南:3分钟掌握res-downloader免费神器
  • 决策者必看:2026年国内SEO服务商选型指南 - GEO优化
  • Babl库:高效的图像处理与色彩空间转换工具
  • HermesAgent自定义提供商接入Taotoken的配置要点解析
  • LibreCAD终极指南:免费2D CAD绘图软件的完整使用教程
  • 2026年北京京牌出租的风险解析:租京牌前必须了解哪些问题? - 企业深度横评dyy6420
  • 【2024最全Lovable工具栈图谱】:基于137家技术团队实测数据,仅剩最后23个高适配组合
  • 【Lovable平台性能生死线】:压测暴露的3个隐性瓶颈,第2个90%团队至今未修复!
  • 工业机器人硬件安全拆解与逆向工程实践
  • DTD 总结
  • ChatGPT生成内容引用规范全解析(教育部Nature双认证合规路径)
  • VLOOKUP函数底层逻辑与实战避坑指南
  • 2026年苏州专业回收名酒服务商,究竟凭啥在市场脱颖而出? - 资讯快报
  • ChatGPT无法登录?5分钟定位是网络策略、Token失效还是账户风控(附实时检测命令清单)
  • 【路径规划】基于遗传算法求解低碳冷链物流车辆路径问题(目标函数固定成本 运输成本 制冷成本 惩罚成本 总碳排放成本)附Matlab代码
  • 为什么92%的AI Agent项目死在MVP阶段?资深架构师亲授无代码验证飞轮模型