news 2026/5/4 16:23:25

C 语言第三章运算符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C 语言第三章运算符

1算数操作符号

+、 -、 *、 /、

+和-用来完成加法和减法

例如

例如

运算符*用来算乘法

例如

运算符/用来算除法

除号两端都是整数,执行除法,则结果也是整数

上面示例中,尽管变量x的类型是float(浮点数),但是6 / 4得到的结果是1.0,而不是1.5。原因就在于 C 语言里面的整数除法是整除,只会返回整数部分,丢弃小数部分。

如果希望得到浮点数的结果,两个运算数必须至少有一个浮点数,这时 C 语言就会进行浮点数除法。

则 3.0/2 结果就为1.5了。

再介绍一下%

运算符%表示求模(余)运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。

2 赋值操作符:=和复合赋值

在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值。

如下

在C语言当中提供了更简便的算法

同理还有a-=3代表a=a-3

这里是C语言中的符合赋值符号

3.单目操作符

3.1++和--

++是一种自增的操作符,又分为前置++和后置++;--是一种自减的操作符,也分为前置--和后置--。

++代表自己自身加1

3.1.1前置++

计算口诀:先+1,后使用;

3.1.2后置++

计算口诀:先使用,后+1

3.1.3前置--

如果你听懂了前置++,那前置--是同理的,只是把加1换成了减1。

计算口诀:先-1,后使用

3.1.4后置--

计算口诀:先使用,后-1

4.移位运算符

4.1 左移<<

左移规则:左边抛弃、右边补0

0000 1010 二进制表示10

左移后变成

0001 0100 二进制表示20

左移两次变成

0010 1000 二进制表示40

左移1次 相当于10乘2

左移2次 相当于乘10乘2*2

小结:关于带符号整数左移

  • C语言标准规定导致符号位改变的带符号整数的左移操作属于“未定义行为” (Undefined Behavior, UB)。
  • C标准不保证结果一定是那个负数值。
  • 编译器可以做任何处理,包括产生一个警告、得到预期的负数值、得到一个完全意外的值,甚至在某些极端情况下导致程序崩溃。

4.2 右移>>

右移规则:左边用原该值的符号位填充,右边丢弃

大白话:左边补符号位,符号位原来是1就补1 原来是0就补0。

此时为正数,符号位是0,结果是:5

此时为负数,符号位是1,结果仍然是:-1

5. 位操作符

5.1& 按位与

int num1 = -3; 1000 0011 原码 反码 1111 1100 补码 1111 1101

1111 1101
int num2 = 5; 0000 0101 只要比特位上有0,按位与的结果就为0

int num1 & nmu2 0000 0101 二进制代表5

5.2|按位或

int num1 = -3; 1000 0011 原码 反码 1111 1100 补码 1111 1101

1111 1101
int num2 = 5; 0000 0101 只要比特位上有1,按位与的结果就或1

int num1 | nmu2 1111 1101 二进制代表-3

5.3^按位异或

int num1 = -3; 1000 0011 原码 反码 1111 1100 补码 1111 1101

1111 1101
int num2 = 5; 0000 0101 对应比特位上一样用0表示,不一样用1表示。

int num1 ^ nmu2 1111 1000 二进制代表-8

特殊 n^n=0 两个数字一样异或出来就是0

0000 0001

0000 0001

----------------

0000 0000 等于0

0^n=n 0和任何数异或出来都为本身

0000 0000

0000 0001

------------------

0000 0001 等于本身

5.4~按位取反

int num1 = -3; 1000 0011 原码 反码 1111 1100 补码 1111 1101

1111 1101
int num2 = ~num 1 0000 0010 按位取反后的补码 代表2

6.逗号表达式

逗号表达式规则

逗号表达式,就是用逗号隔开的多个表达式。

逗号表达式会从左向右依次计算所有子表达式,整个表达式的最终结果是最后一个子表达式的结果。

7. 关系运算符

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

关系运算符用于比较表达式。如果关系为真,则结果为1;如果为假,则结果为0。我们将在选择结构中重点讲解其应用。

例如

8. 逻辑运算符

🧠 逻辑运算符

逻辑运算符包含:逻辑与:&&、逻辑或:||、逻辑非:!。

这些运算符通常与关系运算符结合使用,用于构建更复杂的条件判断,我们将在后续的“选择结构”章节中详细讲解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 16:22:29

代码金丝雀:轻量级主动式代码健康探测实践指南

1. 项目概述&#xff1a;代码金丝雀技能——一种主动式代码质量守护策略在软件开发的日常中&#xff0c;我们常常面临一个困境&#xff1a;代码库在不断演进&#xff0c;新功能、修复补丁、依赖更新像潮水般涌入。如何确保这些变更不会在某个不起眼的角落引入难以察觉的破坏性错…

作者头像 李华
网站建设 2026/5/4 16:22:02

开发多语言内容生成系统时利用 Taotoken 聚合不同特长模型

开发多语言内容生成系统时利用 Taotoken 聚合不同特长模型 1. 多语言内容生成的技术挑战 在构建面向全球市场的营销内容生成系统时&#xff0c;开发者常面临模型选型与资源分配的难题。不同语言的内容生成对模型能力要求各异&#xff1a;英语内容可能需要更自然的创意表达&am…

作者头像 李华
网站建设 2026/5/4 16:15:40

Claude Chat / Code / Cowork 40个隐藏功能全拆解

99% 用户只用了20%&#xff0c;这篇让你直接把 Claude 用成生产力核武器 你每月付钱给 Claude&#xff0c;却只用了它 20% 的功能——这可能是当前最普遍的“付费却浪费”的现象。我花了几百小时在 Claude 的三个界面&#xff08;Chat、Code、Cowork&#xff09;里反复实验&…

作者头像 李华
网站建设 2026/5/4 16:14:03

视频插入技术:LoRA与DiT在动态编辑中的应用

1. 项目背景与核心价值最近在视频编辑领域出现了一个有趣的技术方向——视频插入&#xff08;Video Insertion&#xff09;。不同于传统的视频合成或特效添加&#xff0c;这项技术专注于在已有视频中自然插入新的视觉元素&#xff0c;同时保持时间连贯性和空间合理性。OmniInse…

作者头像 李华
网站建设 2026/5/4 16:13:19

从Maya转Blender?这份快捷键映射与效率配置指南帮你无缝切换

从Maya转Blender&#xff1f;这份快捷键映射与效率配置指南帮你无缝切换 当习惯了Maya行云流水般的操作节奏后&#xff0c;初次打开Blender时那种手足无措的感觉&#xff0c;相信很多3D艺术家都深有体会。明明脑海中已经有了完整的创作流程&#xff0c;手指却总在键盘上方犹豫不…

作者头像 李华
网站建设 2026/5/4 16:09:15

基于Docker与SearXNG构建私有隐私搜索引擎:开箱即用部署指南

1. 项目概述&#xff1a;一个开箱即用的隐私搜索聚合方案如果你和我一样&#xff0c;对搜索引擎的隐私泄露、结果过滤和无处不在的广告感到厌倦&#xff0c;同时又不想在技术配置上耗费太多精力&#xff0c;那么drawliin/openclaw-searxng这个项目绝对值得你花时间了解一下。简…

作者头像 李华