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

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

1.算术运算符

运算符名称备注
+加法运算符双目运算,a + b
-减法运算符双目运算,a - b
*乘法运算符双目运算,a * b
/除法运算符双目运算,a / b
%求余运算符双目运算, a % b
++自增运算符单目运算, a++
自减运算符单目运算, a–

2.关系运算符

运算符名称数学中的表示备注
>大于运算符>双目运算, a > b
<小于运算符<双目运算, a < b
>=大于等于运算符双目运算, a >= b
<=小于等于运算符双目运算, a <= b
==等于运算符=双目运算, a == b
!=不等于运算符双目运算, a != b
注: 关系运算符用于比较数据的大小,操作类型一般为整形数据。 关系运算符返回类型为布尔值(真或假,1或0),当关系式成立时为真,否则为假。 一般用于带布尔参数的运算语句,如if,while

3.逻辑运算符

运算符名称结合性对应数学中的名称备注
&&与运算符左结合双目运算, a && b,a和b同时为真,返回真,否则返回假
||或运算符左结合双目运算, a || b,a和b同时为假,返回假,否则返回真
!非运算符右结合单目运算, !a,a为真时,返回假,a为假时,返回真
注: 逻辑运算符用于计算逻辑表达式的值,操作类型一般为布尔值。 逻辑运算符返回类型为布尔值(真或假,1或0),一般用于带布尔参数的运算语句,如if,while

4.位运算符

运算符名称备注
&按位与双目运算, a & b,将a和b的每个二进制位进行与操作(同时为1,得1,否则为0)
|按位或双目运算, a | b,将a和b的每个二进制位进行或操作(同时为0,得0,否则为1)
^按位异或双目运算, a^b,将a和b的每个二进制位进行异或操作(值不同为1,值相同为0)
~按位取反单目运算, ~a,将a的每个二进制位进行取反操作(值为1时取0,值为0时取1)

5.赋值运算符

运算符名称结合性对应数学中的名称备注
=左结合双目运算, a && b,a和b同时为真,返回真,否则返回假
||或运算符左结合双目运算, a || b,a和b同时为假,返回假,否则返回真
!非运算符右结合单目运算, !a,a为真时,返回假,a为假时,返回真
注: 逻辑运算符用于计算逻辑表达式的值,操作类型一般为布尔值。 逻辑运算符返回类型为布尔值(真或假,1或0),一般用于带布尔参数的运算语句,如if,while

6.运算符优先级

优先级运算符名称或含义使用形式结合方向说明
1[]数组下标数组名[常量表达式]左到右
()圆括号(表达式)/函数名(形参表)
.成员选择(对象)对象.成员名
->成员选择(指针)对象指针->成员名
2-负号运算符-表达式右到左单目运算符
~按位取反运算符~表达式
++自增运算符++变量名/变量名++
自减运算符–变量名/变量名–
*取值运算符*指针变量
&取地址运算符&变量名
!逻辑非运算符!表达式
(类型)强制类型转换(数据类型)表达式
sizeof长度运算符sizeof(表达式)
3/表达式/表达式左到右双目运算符
*表达式*表达式
%余数(取模)整型表达式%整型表达式
4+表达式+表达式左到右双目运算符
-表达式-表达式
5<<左移变量<<表达式左到右双目运算符
>>右移变量>>表达式
6>大于表达式>表达式左到右双目运算符
>=大于等于表达式>=表达式
<小于表达式<表达式
<=小于等于表达式<=表达式
7==等于表达式==表达式左到右双目运算符
!=不等于表达式!= 表达式
8&按位与表达式&表达式左到右双目运算符
9^按位异或表达式^表达式左到右双目运算符
10|按位或表达式|表达式左到右双目运算符
11&&逻辑与表达式&&表达式左到右双目运算符
12||逻辑或表达式||表达式左到右双目运算符
13?:条件运算符表达式1? 表达式2: 表达式3右到左三目运算符
14=赋值运算符变量=表达式右到左
/=除后赋值变量/=表达式
*=乘后赋值变量*=表达式
%=取模后赋值变量%=表达式
+=加后赋值变量+=表达式
-=减后赋值变量-=表达式
<<=左移后赋值变量<<=表达式
>>=右移后赋值变量>>=表达式
&=按位与后赋值变量&=表达式
^=按位异或后赋值变量^=表达式
|=按位或后赋值变量|=表达式
15逗号运算符表达式,表达式,…左到右
http://www.lryc.cn/news/126712.html

相关文章:

  • 轮腿机器人的PID控制
  • ChatGPT爆火,会给教育带来什么样的影响或者冲击?
  • Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现
  • 爬虫逆向实战(十七)--某某丁简历登录
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表
  • DRF 缓存
  • Collada .dae文件格式简明教程【3D】
  • 在K8s上处理nginx
  • 嵌入式:ARM Day4
  • SpringBoot案例-员工管理-分页条件查询
  • python控制obs实现无缝切换场景!obs-websocket-py
  • Vue3实现图片懒加载及自定义懒加载指令
  • LeetCode150道面试经典题-- 环形链表(简单)
  • 音视频学习-音视频基础
  • asp.net core webapi如何执行周期性任务
  • 快速搭建图书商城小程序的简易流程与优势
  • C++ template 循环
  • 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)
  • mysql 数据备份和恢复
  • Lucene教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 物联网工程应用实训室建设方案
  • 【AI绘画】3分钟学会ikun幻术图
  • Spring 框架入门介绍及IoC的三种注入方式
  • Centos升级openssl
  • 第4章:决策树
  • 小米平板6Max14即将发布:自研G1 电池管理芯片,支持33W反向快充
  • Elasticsearch复合查询之Boosting Query
  • Clickhouse基于文件复制写入
  • 梅赛德斯-奔驰将成为首家集成ChatGPT的汽车制造商
  • QT-播放原始PCM音频流