从零开始的敲代码生活--C语言篇(运算符) 运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符、逗号运算符等一、运算符分类1. 算术运算符符号 - * / % --加减乘除取余自增自减其中 - * / %为双目运算符两个操作数 --为单目运算符一个操作数对于整型除法直接舍去小数只保留整数对于浮点除法保留小数%取余求模只能用于整型char/short/int/long不能用于 float/double其运算结果符号与左操作数保持一致、--自增自减可分为前置与后置两种前置num--num先1-1后再使用值后置numnum--先使用原值运算结束后再1-1注意自增自减只能作用于变量不能作用于常量 / 表达式2.赋值运算符符号 - * / %均为双目运算符对于赋值运算符其左值必须是可修改变量不能是常量、表达式、数组名复合赋值等价展开例如num 10等价于num num 10num % 3等价于num num % 3链式赋值自右向左结合例如a b c 5;等价 c5; bc; ab;3. 关系运算符符号 !均为双目运算符关系运算符的结果为逻辑结果即1真0假需注意连续比较不能简写例如6 j -2其等价于等(-6j) 结果0/1 再与-2比较4.逻辑运算符符号 || !逻辑与逻辑或逻辑非逻辑与双目全真才为真一假则假左右同时为真时结果为真左右有一个为假结果即为假短路当左边为假时右边完全不执行||逻辑或双目一真即为真全假才假左右有一个为真结果即为真左右同时为假时结果为假短路当左边为真时右边完全不执行!逻辑非单目取反非 0 变 00 变 15.三目运算符符号 ? :唯一三目运算符语法条件表达式?表达式1:表达式2逻辑条件为真执行表达式 1条件为假执行表达式 2结合性自右向左整体是一个表达式有返回值6.逗号运算符符号,优先级全运算符最低规则从左往右依次执行所有表达式最终结果为最后一个表达式的值例如num 23, 4*5, 6-4;等价于(num5), 20, 2; num5用途for 循环多变量初始化 / 步进7. sizeof 运算符功能用于计算数据 / 变量 / 类型在内存占用字节数其返回值为unsigned long例如sizeof(int)或sizeof(num)64 位系统下所有指针sizeof(指针) 8字节数组名单独放入 sizeof代表整个数组总字节数组作为函数形参时退化为指针sizeof 仅为 8二、运算符优先级层级运算符类型符号结合方向1括号()左2单目运算符! ~ -- * sizeof右3算术乘除取余* / %左4算术加减 -左5移位 左6关系大小比较 左7相等判断 !左8按位与左9按位异或^左10按位或左11逻辑与左12逻辑或左13三目运算符? :右14赋值运算符 - * / %右15逗号运算符,左三、类型转换C 语言运算时不同数据类型会自动 / 强制转换分为隐式自动转换、显式强制转换两大类1. 隐式类型转换隐式类型转换系统自动转换无需手动写代码运算时编译器自动将低精度 / 小范围类型转为高精度 / 大范围保证运算精度不丢失精度优先级从低→高整型char/short→int→long→unsigned long浮点float→doublefloat 参与运算一定会提升为 double无符号 同长度有符号如 unsigned int 高于 int整体层级char/short int long float double强制转换规则char、short只要参与算术运算、比较运算无条件先转 int浮点与整型混合运算整型转浮点有符号与无符号同长度运算有符号转为无符号极易出现负数变超大正数 bug赋值转换特殊隐式转换 等号右边类型自动适配左边变量类型会发生截断 / 补位浮点赋值给整型直接舍弃小数只保留整数大数据存入小类型高位截断只保留低位字节小数据存入大类型正数高位补 0负数高位补符号位 12. 显式强制类型转换手动转换格式(目标类型)表达式语法(类型)数据;或(类型)(表达式);使用复杂表达式建议加括号特性1仅临时转换本次运算的值不会改变原变量本身存储内容2高精度强制转低精度精度丢失、数值截断、符号错乱3无符号、有符号互相强制转换直接拷贝内存二进制补码原样保留

相关新闻

最新新闻

从零到一:生产环境自部署Dify RAG知识库实战指南

从零到一:生产环境自部署Dify RAG知识库实战指南

1. 项目概述:为什么自部署Dify RAG知识库是当前AI应用的关键一步 最近和不少做AI应用开发的朋友聊天,发现大家普遍卡在同一个环节:如何让大语言模型(LLM)精准地“理解”并“使用”自家的私有数据和专业知识。直接拿公开…

2026/8/7 12:12:03
C语言中%zu与%zd格式符详解:解决size_t跨平台格式化输出难题

C语言中%zu与%zd格式符详解:解决size_t跨平台格式化输出难题

1. 项目概述:从一次内存泄漏排查说起 那天下午,我盯着调试器里那个诡异的“-1”值,陷入了沉思。一个本该记录数据大小的 size_t 类型变量,在用 %d 打印时,竟然显示成了负数。团队里一个刚接手C语言项目不久的新同事…

2026/8/7 12:12:03
电赛国一报告撰写指南:从方案论证到测试分析的结构化模板解析

电赛国一报告撰写指南:从方案论证到测试分析的结构化模板解析

1. 项目概述与核心价值每年一度的全国大学生电子设计竞赛,对于电子信息相关专业的学生来说,无疑是一场技术、体力和意志力的综合考验。四天三夜的封闭式高强度开发,从拿到赛题、方案论证、硬件搭建、软件调试到最终报告撰写,每一个…

2026/8/7 12:12:03
终极指南:如何为本地音乐库批量下载LRC同步歌词的完整解决方案

终极指南:如何为本地音乐库批量下载LRC同步歌词的完整解决方案

终极指南:如何为本地音乐库批量下载LRC同步歌词的完整解决方案 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否曾为本地音乐库缺少同…

2026/8/7 12:12:03
UV网格重塑:如何用UvSquares插件将Blender UV编辑效率提升300%

UV网格重塑:如何用UvSquares插件将Blender UV编辑效率提升300%

UV网格重塑:如何用UvSquares插件将Blender UV编辑效率提升300% 【免费下载链接】UvSquares Blender addon for reshaping UV quad selection into a grid. 项目地址: https://gitcode.com/gh_mirrors/uv/UvSquares UvSquares是Blender中革命性的UV网格重塑插…

2026/8/7 12:12:03
企业网络私接小路由的防御:DHCP Snooping与端口安全配置实战

企业网络私接小路由的防御:DHCP Snooping与端口安全配置实战

在企业网络中,私接无线路由器、家用路由器等“小路由”是网络管理员最头疼的问题之一。这类设备通常由员工私自接入,意图获得更方便的无线网络或绕过公司网络管控,但其DHCP服务、NAT转换、错误网段配置等行为,会直接导致IP地址冲突…

2026/8/7 12:07:03