宁德住房和城乡建设部网站武城网站建设价格

张小明 2026/1/11 6:24:35
宁德住房和城乡建设部网站,武城网站建设价格,西安做网站找缑阳建,17网站一起做阅读对象#xff1a;C 语言初学者、在校学生、初级嵌入式/系统开发工程师 目标#xff1a;不仅让你“记住”运算符#xff0c;更让你“理解”代码背后的逻辑。如果把变量比作 C 语言中的“积木”#xff0c;那么运算符就是粘合这些积木的“胶水”和“工具”。没有它们…阅读对象C 语言初学者、在校学生、初级嵌入式/系统开发工程师目标不仅让你“记住”运算符更让你“理解”代码背后的逻辑。如果把变量比作 C 语言中的“积木”那么运算符就是粘合这些积木的“胶水”和“工具”。没有它们你的程序就是一堆静止的数据没有任何逻辑和动作。C 语言的运算符非常丰富且灵活这也是 C 语言强大的原因之一。但灵活往往伴随着陷阱。今天我们就来深入浅出地拆解 C 语言中那些最常用的运算符带你避开新手常踩的坑。一、 算术运算符数学计算的基础这些是最直观的运算符和我们小学通过学的数学基本一致。常见符号(加),-(减),*(乘),/(除),%(取模/求余) 核心概念除法 (/)在 C 语言中整数除以整数结果还是整数直接截断小数部分不四舍五入。只有当操作数中至少有一个是浮点数时结果才是浮点数。取模 (%)实际上就是“求余数”。它只能用于整数。 实战示例#include stdio.h int main() { int a 10, b 3; float x 10.0f; // 整数除法 int div_int a / b; // 浮点数除法 float div_float x / b; // 取模 int mod_res a % b; printf(10 / 3 %d\n, div_int); printf(10.0 / 3 %.2f\n, div_float); printf(10 %% 3 %d\n, mod_res); // 注意printf中输出%需要写成%% return 0; } 结果分析10 / 3输出3这是新手常犯的错以为会得到3.33。因为a和b都是intC 语言会无情地丢弃小数部分。10.0 / 3输出3.33因为x是浮点数运算自动升级为浮点运算。10 % 3输出110 除以 3 商 3 余 1。%运算常用于判断奇偶数n % 2或限制数值范围。二、 关系运算符世界的真与假用于比较两个值。常见符号(大于),(小于),(大于等于),(小于等于),(等于),!(不等于) 核心概念C 语言C89 标准中没有专门的布尔类型true/false。真非 0 的值。假0。运算结果关系运算的结果只有两种1(真) 或0(假)。 实战示例#include stdio.h int main() { int score 85; int is_pass (score 60); // 比较结果存入变量 if (score 100) { printf(满分\n); } else if (is_pass) { printf(及格了结果为: %d\n, is_pass); } else { printf(不及格。\n); } return 0; } 结果分析score 60成立所以is_pass的值为1。新手天坑千万不要把判断相等写成赋值如果不小心写成if (score 100)那么score会被赋值为 100非0导致条件永远为真。三、 逻辑运算符复杂条件的组合当你需要同时满足多个条件并且或者满足其中一个条件或者时使用。常见符号(逻辑与/并且),||(逻辑或/或者),!(逻辑非/取反) 核心概念短路求值 (Short-circuit)这是重点A B如果 A 已经是假0电脑就不会再去计算 B 了因为结果注定是假。A || B如果 A 已经是真非0电脑就不会再去计算 B 了因为结果注定是真。 实战示例#include stdio.h int main() { int a 0; int b 10; // 逻辑与测试 if (a ! 0 (b / a 1)) { printf(这行代码永远不会执行也不会报错。\n); } else { printf(安全避免了除以0错误。\n); } // 逻辑或测试 int x 1; if (x 1 || (b 10)) { // 因为 x1 为真后面的 b 其实根本没执行 printf(逻辑或成立。\n); } printf(b 的值依然是: %d (未变)\n, b); return 0; } 结果分析a ! 0为假所以后面的(b / a 1)直接被跳过。这保护了程序没有发生“除以0”崩溃。同样的b的值最后还是 10因为b被短路了。四、 自增/自减运算符加一减一的魔法让变量自己加 1 或减 1。常见符号(自增),--(自减) 核心概念前缀 (i)先加 1再使用。后缀 (i)先使用当前值用完这行语句后再加 1。 实战示例#include stdio.h int main() { int i 5; int j 5; int a i; // 先加i变6赋值给a int b j; // 先赋值b是5j再变6 printf(a %d, i %d\n, a, i); printf(b %d, j %d\n, b, j); return 0; } 结果分析a得到了6b却只得到了5。虽然最后i和j都变成了 6但在赋值的那一瞬间时机决定了一切。五、 位运算符直接操作二进制对于嵌入式开发和底层系统编程位运算是必修课。常见符号(按位与),|(按位或),^(按位异或),~(按位取反),(左移),(右移) 核心概念(清零器)遇 0 则 0。常用于把某一位清零。|(设定器)遇 1 则 1。常用于把某一位设为 1。(放大器)左移 1 位 相当于 乘以 2。 实战示例#include stdio.h int main() { unsigned char flag 0x01; // 二进制: 0000 0001 // 将第3位bit 2置为1 // 0x04 是 0000 0100 flag flag | 0x04; // 结果应为 0000 0101 (即 0x05) printf(置位后: 0x%02X\n, flag); // 将刚置好的位再清零 // ~0x04 是 1111 1011 flag flag (~0x04); // 结果回到 0000 0001 printf(清零后: 0x%02X\n, flag); return 0; }六、 避坑指南优先级与易错点1. 致命的与这几乎是每个 C 语言程序员的“成人礼”。int x 5; if (x 0) { // 上面这句意思是把0赋值给x表达式结果为0假。 // 所以这里永远不会执行。 printf(Happens?); }建议当你比较变量和常量时老手习惯写成if (0 x)。这样如果你少写一个等号if (0 x)编译器会直接报错因为不能给常量赋值。2. 谁先谁后优先级C 语言运算符优先级非常多死记硬背容易忘。经典反例if (flags MASK 0)你以为是判断(flags MASK)的结果是否等于 0错的优先级比高。 实际执行的是flags (MASK 0)。这完全不是你想要的代码。 黄金法则不要吝啬括号当你拿不准优先级或者代码看起来稍微有点复杂时加上括号。✅if ((flags MASK) 0)这样既安全又让读你代码的人感谢你。总结C 语言的运算符是构建程序逻辑的基石。算术运算要注意整数除法的截断。关系运算要注意和的区别。逻辑运算得懂“短路”特性。位运算是操作硬件及其高效计算的神器。自增自减要分清前后缀。代码是写给人看的顺便给机器运行。掌握这些运算符不仅是为了写出能跑的代码更是为了写出健壮、清晰、无歧义的代码。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

东华网站开发与网站开发有关的岗位是哪些

ComfyUI-SeedVR2视频超分插件是一个基于扩散模型的强大工具,能够将低分辨率视频和图像提升到高清甚至4K画质,同时保持出色的时间一致性。作为ComfyUI生态中的官方SeedVR2实现,这款插件不仅提供了专业的视频超分功能,还能以独立CLI…

张小明 2026/1/10 9:43:10 网站建设

沧浪企业建设网站电话微网站是什么时候创建的

FaceFusion能否用于品牌代言?明星脸授权安全替换在某国际美妆品牌的最新广告中,一位“似曾相识”的面孔微笑着介绍新品——眼型像极了当红影星,微笑弧度也极为熟悉,但仔细观察又并非本人。镜头角落一行小字浮现:“AI合…

张小明 2026/1/10 9:43:09 网站建设

百度网站电话是多少男女做羞羞事漫画网站免费

家庭网络基础与前沿技术解析 1. 家庭网络概述 家庭网络将家中的计算机、磁盘驱动器和打印机连接在一起,让你可以在屋内任何地方访问数据。同时,它还能实现多台计算机共享一个互联网连接,无需担心他人是否正在上网。以下是家庭网络的一些关键信息: - 优势 : - 文件共…

张小明 2026/1/10 9:43:14 网站建设

网站克隆 有后台登录网上做网站网站代理赚钱吗

LangFlow 支持 Docker 一键部署吗?容器化运行实测记录 在大模型应用开发日益普及的今天,越来越多开发者面临一个共同挑战:如何快速验证一个LLM工作流的想法,而不被环境配置、依赖冲突和代码调试拖慢节奏? 正是在这种…

张小明 2026/1/10 9:43:14 网站建设

贵南网站建设云南小程序开发首选品牌

第一章:DOTS中的Job Safety系统详解,90%开发者都踩过的坑你中招了吗?在Unity DOTS(Data-Oriented Technology Stack)开发中,Job System的内存安全机制是保障多线程稳定运行的核心。然而,许多开发…

张小明 2026/1/10 9:43:16 网站建设

wordpress多站点文章调用濮阳市建设分局网站

新能源汽车用户手册问答:车主自助服务平台搭建 在新能源汽车普及的今天,车主面对的问题早已不止“怎么充电”这么简单。从能量回收系统的使用技巧,到OTA升级后的功能变更,再到冬季续航骤降的应对策略——用户的问题越来越具体、高…

张小明 2026/1/10 5:27:18 网站建设