C语言中的运算符表达式
1.算术表达式1概念算术表达式是用运算符号将常量、变量以及数学函数连接起来的式子。2算术运算符又分双目运算符和单目运算符两种。每个运算符都要处理两个操作数即运算数操作数可以是常量、变量或者其他算数表达式操作数分别位于运算符的左右两边这里使用的是双目运算符。单目运算符分增量运算符和减量运算符其只需要一个操作数它可以位于运算符的任意一侧但是表达的含义不同。其算术运算符如下表1.1表1.1 算术运算符注1两个整数类型的数据做除法运算时结果只保留整数部分。如2/30。2只有整数类型才能进行取余运算其结果是两数整除后的余数。如9%22。3自增和自减运算符只适用于变量且变量可以位于运算符的任意一侧但各有不同的效果。例如int a1 2,a2 2; int b (a1)*2; //等价于a1 a1 1; b a1 * 2; int c (a2)*2; //等价于c a2 * 2;a2 a2 1;其结果为b 6,c 4。原因是a1表示在使用变量a1之前,a11,然后使用新值进行运算即先加1在使用而a2表示先试用a2的原值待使用完之后在进行a21,即先使用再加1。但是这三个语句执行完后a1和a2的值都为3。3算术运算符的优先级其优先级是指当一个表达式中出现不同的算术运算符时执行运算的优先次序。如表1.2列出了算术运算符的优先级。表1.2算术运算符的优先级在书写表达式时应注意1写表达式时若记不清其优先顺序可以通过括号改变优先级的次序。2在书写表达式时若表达式过长可以分为几个表达式来写。3在一个表达式中最好不要连续使用两个表达式如ab。这种会让人混淆应该是(a)b,还是a(b)。这种情况可以使用括号进行分组或者用空格符是空格符‘ ’而不是空隔符‘\0’。2.赋值表达式1强制类型转换在学习赋值表达式前先学习以下什么是强制类型转换。定义强制类型转换是指当一个表达式中出现的各种变量或者常量的数据类型不同时需要进行的数据类型转换casting conversation。无论在C语言中还是java语言中数据类型的转换都分为隐式类型转换和显示类型转换这两种形式。1隐式类型转换对于由双目运算中的算术运算符组成的表达式一般要求运算符两边的操作数类型一致如果不一致系统会自动转换为较高的类型即取值范围较大。隐式类型转换遵循的是精度不降低的标准即短型向长型转换低精度向高精度转换。其规则如下2)强制类型转换表达形式为data_typeexpressioon;例如int a4,b0; double c3.14; s a (int)c;可知c的类型为double,然而s是int类型将int放在c前面就是将c 的类型强制转换成int类型先将c中的数据截取小数部分让整数部分与a 进行加法运算故c3最后将7赋值给s。在整个转换过程中并没有改变c的类型以及取值可见显示类型的转换是暂时的。注强制类型转换有副作用避免其的方法如下1避免两个整数进行相除整数相除会导致相除结果的小数部分丢失。2在进行强制类型转换的过程中如想实现小数的四舍五入先给被转换的变量0.5然后再实施强制类型转换如(int)(x0.5)。2赋值表达式由赋值运算符组成的表达式称为赋值表达式。1赋值运算符“”——赋值运算符的作用是将赋值运算符右边的数据或者表达式的值赋给运算符左边的变量。注赋值号左边必须是变量。例如double s 6.5 33;//是将表达式6.533赋值给变量s.2)赋值中的类型转换在赋值表达式中如果两侧的数据类型不一致但赋值符左边的数据类型较高系统会自动进行隐式类型转换若赋值运算符左边的变量的数据类型低于右边表达式的类型就必须进行显示类型转换否则编译时会报错。3复合赋值运算符也就是在运算符“”前面加上其他的运算符构成复合赋值运算符。如表1.3表1.3 C语言中的复合赋值运算符复合赋值运算符举例等效于xyxxy-x-yxx-y*x*yxx*y/x/yxx/y%x%yxx%y3.关系表达式利用关系运算符连接起来的式子称为关系表达式。也就是我们所说的比较运算用于对两个表达式进行比较判断比较的结果是否满足给定的条件。C语言中提供了6个关系运算符如表1.4表1.4 关系运算符4.逻辑运算符C语言中提供了3中逻辑运算符如表1.5表1.5 逻辑运算符运算符0含义实例非!(a5),表示a不大于等于5即小于5与x0 x5,表示0≤x≤5||或x5 || x0,表示x≥5或者x≤0逻辑非运算符“”是一个一元运算符紧跟其后的表达式的值为0时它的运算结果为1否则运算结果为0逻辑与运算符“”是一个二元运算符它两边表达式的值均为1时整个逻辑运算的结果为1有一个为0时则整个运算结果为0即有0则0全1才为1逻辑或运算符“||”是一个二元运算符它两边表达式的值均为0时整个逻辑运算结果为0有一个1整个逻辑运算结果为1。即有1为1全0才为05.各类运算符的优先级关系从上图可以看出括号“”运算的优先级别最高赋值运算符的优先级别最低。表中上面未提及的指针运算符“*”在后面将指针的时候会细讲它的用法等以及取地址运算符“”都涉及指针那块知识sizeof()用于计算数据类型或对象在内存空间中所占用的字节数。表中的下表运算符“[]”用于访问数组元素或指针所指向的内存位置。成员运算符“-”用于通过指针访问结构体或联合体的成员“.”用于访问结构体或联合体变量的成员其用法将在后面学习相关知识时细讲。

相关新闻

JVM调优实战:从参数配置到性能优化指南

JVM调优实战:从参数配置到性能优化指南

1. JVM调优实战:从参数配置到性能优化的完整指南在Java应用开发中,JVM调优是每个资深开发者必须掌握的技能。记得我第一次负责生产环境调优时,面对频繁的Full GC和居高不下的CPU使用率,那种手足无措的感觉至今难忘。经过多年实践&…

2026/9/21 18:29:27 阅读更多 →
使用 chrome.browsingData API 构建历史数据清理扩展:chrome-extensions-samples 实战解析

使用 chrome.browsingData API 构建历史数据清理扩展:chrome-extensions-samples 实战解析

示例工程 【免费下载链接】chrome-extensions-samples Chrome Extensions Samples 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-samples 点击查看 免费下载 导读 本文以 chrome-extensions-samples 仓库中的 BrowsingData 示例 为骨架&#x…

2026/9/21 18:29:27 阅读更多 →
国产免费又色又爽又黄的小说源码解析

国产免费又色又爽又黄的小说源码解析

5个国产小说爬虫坑点,搞定高频面试题源码解析 看了一堆教程还是不会写项目?别怪自己笨,是教程都在教你“怎么跑”,没教你“为什么这么跑”。尤其是处理像 国产免费又色又爽又黄的小说…

2026/9/21 18:29:27 阅读更多 →

最新新闻

Vibe 语音转写工具:离线批量转录的高效实战指南

Vibe 语音转写工具:离线批量转录的高效实战指南

Vibe 语音转写工具:离线批量转录的高效实战指南 【免费下载链接】vibe Transcribe on your own! 项目地址: https://gitcode.com/GitHub_Trending/vib/vibe Vibe 是一款基于 Whisper 引擎的本地语音转写工具,全程在你的设备上运行。它能离线转录音…

2026/9/21 18:55:41 阅读更多 →
奥金顿守门人性能优化:3个技巧解决API变更痛点

奥金顿守门人性能优化:3个技巧解决API变更痛点

奥金顿守门人性能优化:3个技巧解决API变更痛点 版本升级后API全变了,新手避坑指南来了。 性能瓶颈定位 奥金顿守门人模块在处理高频请求时,传统实现方式存在明显性能瓶颈。当QPS超过5000时,平均响应时间从12ms飙升至85ms,错误率…

2026/9/21 18:55:41 阅读更多 →
RedwoodJS 项目中的 `.redwood` 目录:设计意图、文件结构与底层实现解析

RedwoodJS 项目中的 `.redwood` 目录:设计意图、文件结构与底层实现解析

RedwoodJS 项目中的 .redwood 目录:设计意图、文件结构与底层实现解析 【免费下载链接】redwood RedwoodGraphQL 项目地址: https://gitcode.com/gh_mirrors/re/redwood 引言 在你日常使用 RedwoodJS 进行开发时,项目根目录下会悄然出现一个名为…

2026/9/21 18:55:41 阅读更多 →
启信宝是什么?手写实现查询避坑指南

启信宝是什么?手写实现查询避坑指南

启信宝是什么?手写实现查询避坑指南 刚入职第一周,领导甩给你一个需求:接入启信宝数据,做企业信用风控。你兴冲冲打开文档,配置环境时却卡了整整半天。Token…

2026/9/21 18:55:41 阅读更多 →
Plotly.py 线性与非线性趋势线完全指南:OLS、LOWESS、移动平均与 `trendline_options` 深度解析

Plotly.py 线性与非线性趋势线完全指南:OLS、LOWESS、移动平均与 `trendline_options` 深度解析

数据可视化数据分析 【免费下载链接】plotly.py The interactive graphing library for Python :sparkles: 项目地址: https://gitcode.com/gh_mirrors/pl/plotly.py 点击查看 免费下载 Plotly Express 提供了开箱即用的统计趋势线能力:通过 trendline …

2026/9/21 18:55:41 阅读更多 →
教育行业老客激活与RFM分层模型实战

教育行业老客激活与RFM分层模型实战

1. 教育机构私域运营中的老客价值挖掘在教育行业摸爬滚打多年,我发现一个被很多机构忽视的真相:那些已经完成首单但逐渐沉默的老学员,其实是一座未被充分开采的金矿。数据显示,教育行业获取一个新客户的成本是维护一个老客户的5-8…

2026/9/21 18:54:41 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →