8、运算符

1、运算符相关概念

运算符:

        具有一定运算规则的符号

运算符分类:

        按照功能分:

                赋值运算符

                算术运算符

                关系运算符

                逻辑运算符

                其他运算符

                位运算符

        按照操作数分:

                单目运算符

                双目运算符

                三目运算符

表达式

        具有一定意义的式子,它可以是常量 、变量 、也可以是操作数和运算符的组合

        表达式是一定有结果的

        例:苹果5块1斤,小明买了6斤,花了多少钱?

        5 --- 苹果的价格

        6 --- 重量

        5*6 --- 价格

        int a = 10;  // a代表班级人数

根据运算符的操作数个数可以分为:

        单目运算符:  ~7    a++;   ++b;

        双目运算符:   + - * /

        三目运算符:   ? :

运算符优先级:

        () 单目  双目  三目  赋值组合

        双目:算术   关系   逻辑

学习运算规则就是学习运算规则。

2、赋值运算符

符号: =

作用:把 = 右侧的值放入到左侧的"空间"去

          = 左侧必须是一个内存空间

        int a = 4.5;   // a = 4;  隐式转换   4.5转成整型 4

        float b = 4;

        强制转换:(转换类型)值

        int c = (int)4.5;

3、算术运算符

符号:+ - * / %(取余 取模)

/:除

        规则:两边如果都是整型,结果是整型

                如果有一个是小数结果就是小数

  

          10 / 3 == 3  

          10.0 / 3 == 3.3333

           1.4 + 3 / 2 == 2.4

%(取余 取模)

        规则:两边必须是整数

        10 % 3 == 1

        101 % 3 == 2

        m % n的结果是 0 ~ n-1

        m % n == 0 ,m能被n整除  m是n的倍数   n是m的因数

        整除关系使用 % 看结果是否为0

应用1:判断数据之间是否能够整除

        例:输入一个数,判断这个数是不是偶数

                偶数:能被2整除的数就是偶数

                int a;

                输入一个数

                如果 数能被2整数  a % 2 == 0

                {

                        输出 偶数

                }

                否则

                {

                        输出 奇数

                }

应用2:/ 和 % -- 做数据分离        

        需求:输入一个三位数,分离出个位  十位 百位

                例如:345  分离个位  十位 百位

                345 / 100% 10 == 3                

                345/10%10  == 4

                345 % 10 == 5

        代码:   

#include<stdio.h>// 输入一个三位数,分离出来它的个位 十位 百位int main(void)
{int n;int ge,shi,bai;scanf("%d",&n); 	// 个位	ge = n % 10;shi = n / 10 % 10;bai = n / 100 % 10;printf("%d %d %d",ge,shi,bai);return 0;}

4、关系运算符

符号: >  >=  <  <=   ==(等于)     !=(不等于)

结果:就看数据之前的关系成不成立,关系成立就是真(1),不成立就是假(0)

例1:

        0 == ‘0’  不成立 结果就是0

        printf("%d\n",0=='0');  // 0

        printf("%d\n",3 > 1 + 1);// 1

        printf("%d\n",0 != '0'); // 1

        printf("%d\n",0=='\0');  // 1

        printf("%d\n",0==NULL);  // 1

        // 0        '\0'        NULL

        // 数字     字符\0      地址编号0

例2:

        n % 2 == 0

5、逻辑运算符

符号:&&(逻辑与)  ||(逻辑或)  !(逻辑非)

C语言里面非0即为真,0是假

逻辑运算符的结果:0 或者 1

5.1、逻辑与&&

格式:表达式1 && 表达式2

规则:全真为真,有假则假

                表达式1        表达式2         表达式1 && 表达式2

                  真                 真                     真

                  真                 假                     假

                   假           ----不需要计算       假

                

#include<stdio.h>int main(void)
{int a = 5;int b = 4;int c = (a > 3) && (b % 2 == 0);printf("%d\n",c);  // 1int d = (a < 3) && (b = 5);printf("%d %d\n",d,b);  // 0  4   表达式1为假直接跳过表达式2,结果直接为假 int e = -4 && 1;printf("%d\n",e);return 0;
}

场景:同时 并且

        比如表述取值范围:0~9   三位数 100~999   ‘0’~‘9’  ‘a’~'z'  'A'~'Z'

                输入一个数据,判断它是不是1位数字     x>=0 && x <=9

5.2、逻辑或 || 

格式:表达式1 || 表达式2

规则:全假为假,有真则真

                表达式1        表达式2             表达式1 && 表达式2

                  真            --- 不需要计算                  真

                  假                     真                            真

                  假                     假                            假

#include<stdio.h>int main(void)
{int a = 5;int b = 4;int c = (a > 3) || (b % 2 == 0);printf("%d\n",c);  // 1int d = (a < 3) || (b = 5);printf("%d %d\n",d,b);  // 1  5   int e = 0 || 1;printf("%d\n",e);  // 1 int f = (a < 3) || (a == 4);printf("%d",f);   // 0return 0;
}

 

场景:或者

        某个范围外 不是1位数  x < 0 || x > 9

        一个字符ch是字母 : 小写 || 大写     

                 (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')

        输入月份month 输出这个月有多少天

                month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12  --- 31天

                month == 4 || month == 6 || month == 9 || month == 11  ------ 30天

                month == 2

                        闰年 --- 29天

                        平年 --- 28天

5.3、逻辑非!

格式:!表达式

规则:真变假,假变真

                表达式        !表达式

                  真                 假

                  假                 真

场景:判断表达式结果是否为假

                如果 表达式为假

                {

                }

                

#include<stdio.h>int main(void)
{int x = 5;// x 是否等于0,如果为0输出 no,否则输出yes如果 !x   (如果 x == 0){输出 no}否则{输出 yes}return 0;
}

6、其他运算符

6.1、自增自减运算符

        ++a    ++在前先加后用

        a++    ++在后先用后加

        -- 同理

#include<stdio.h>int main(void)
{int a = 5;int b = 5;a++;++b;printf("%d %d\n",a,b);  // 5  5int c = 5;int d = 5;int e = ++c;  // c=c+1; c=6;     e=6;int f = d++;  // f=5     d=d+1;  d=6printf("%d %d\n",e,f); // 6  5printf("%d %d\n",c,d); // 6  6int k = 3;int t = ++k + 3;  printf("%d\n",t); // 7printf("%d\n",k); // 4return 0;
}
6.2、三目运算符

格式:

        表达式1 ? 表达式2    表达式3

规则:

        先计算表达式1的结果,

        如果为真,执行表达式2或者选择表达式2的结果作为 三目运算符表达式的结果

        如果为假,执行表达式3或者选择表达式3的结果作为 三目运算符表达式的结果

例子:输入一个数据,判断是偶数还是奇数    

#include<stdio.h>int main(void)
{int n;scanf("%d",&n);n%2==0 ? printf("偶数") : printf("奇数");int n = (3 > 5 ? 3 : 5);printf("%d",n);           // 5return 0;
}
 6.3、复合运算符

        = 算术运算符  位运算符组合

        += -= *= /= %=   &= |= ^= <<= >>=        

#include<stdio.h>int main(void)
{		int a = 5;a += 5;      // a = a + 5;   a = 10;printf("%d",a);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux网络编程】第二弹---Socket编程入门指南:从IP、端口号到传输层协议及编程接口全解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Socket 编程预备 1.1、理解源 IP 和目的 IP 1.2、认识端口号 1.2.1、端口号范围划分 1.2.2、理解 &q…

算法训练营day08(字符串01:反转字符串,反转字符串2,替换数字,反转字符串里的单词,右旋转字符串)

第四章 字符串part01今日任务 ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网&#xff1a;54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网&#xff1a;55.右旋转字符串详细布置 344.反转字符串 建议&#xff1a; 本题是字符串基础题目&#xff0c;就是考察 reverse 函数…

Java中三种常用布局方式

引言 在Java Swing和JavaFX中&#xff0c;布局管理器&#xff08;Layout Managers&#xff09;用于控制组件&#xff08;如按钮、文本框等&#xff09;在容器&#xff08;如窗口、面板等&#xff09;内的位置和大小。下面介绍Java Swing中常用的三种布局方式&#xff1a; 1. Fl…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具&#xff0c;但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作&#xff0c;常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化&#xff0c;还重新定义了效率与创意的关系…

Leetcode(快慢指针习题思路总结,持续更新。。。)

这种模式&#xff0c;有一个非常出门的名字&#xff0c;叫龟兔赛跑。这种算法的两个指针的在数组上&#xff08;或是链表上&#xff0c;序列上&#xff09;的移动速度不一样。快的一个指针肯定会追上慢的一个&#xff08;可以想象成跑道上面跑得快的人套圈跑得慢的人&#xff0…

基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能

摘要&#xff1a; 随着数字化商业生态的蓬勃发展&#xff0c;“开源 AI 智能名片 S2B2C 商城小程序”融合前沿技术与创新商业模式&#xff0c;为企业营销与业务拓展带来新机遇。本文聚焦于用户时间场景维度&#xff0c;深入剖析如何依据不同时段用户行为特征&#xff0c;精准适…

【消息序列】详解(8):探秘物联网中设备广播服务

目录 一、概述 1.1. 定义与特点 1.2. 工作原理 1.3. 应用场景 1.4. 技术优势 二、截断寻呼&#xff08;Truncated Page&#xff09;流程 2.1. 截断寻呼的流程 2.2. 示例代码 2.3. 注意事项 三、无连接外围广播过程 3.1. 设备 A 启动无连接外围设备广播 3.2. 示例代…

二刷代码随想录第15天

513. 找树左下角的值 找到深度最大的点&#xff0c;遍历方式左边节点在右边节点前面&#xff0c;找到就返回&#xff0c;一定就是最左下角的值了 class Solution { public:int max_depth -1;int result 0;int findBottomLeftValue(TreeNode* root) {traversal(root, 0);ret…

vue3的prop

- 父组件需要传多个值给子组件 把值放对象&#xff0c;通过v-bind传整个对象 父组件 <script setup> import BlogPost from ./BlogPost.vue import { reactive } from vue; // 要传给子组件的所有值&#xff0c;用reactive包了该对象后&#xff0c;父组件的值变了&#…

Ubuntu下的Doxygen+VScode实现C/C++接口文档自动生成

Ubuntu下的DoxygenVScode实现C/C接口文档自动生成 1、 Doxygen简介 Doxygen 是一个由 C 编写的、开源的、跨平台的文档生成系统。最初主要用于生成 C 库的 API 文档&#xff0c;但目前又添加了对 C、C#、Java、Python、Fortran、PHP 等语言的支持。其从源代码中提取注释&…

uniapp强制修改radio-group内单选组件的状态方法

在uniapp开发中&#xff0c;需要在radio-group内部切换时做判断&#xff0c;提醒客户是否要变换radio的值&#xff0c;但是大家知道radio是单选组件&#xff0c;往往你点击后&#xff0c;是不能再修改状态的&#xff0c;就算你在点击后做判断&#xff0c;修改current的值&#…

Python plotly库介绍

一、引言 在数据可视化领域&#xff0c;Python提供了众多强大的库。其中&#xff0c;plotly是一个功能强大、交互式的可视化库&#xff0c;可以创建各种类型的图表&#xff0c;包括线图、散点图、柱状图、饼图、3D图表等。它不仅提供了美观的可视化效果&#xff0c;还支持交互式…

中国高铁、中兴通讯和中国 装备制造业的发展中能分别获得哪些启示

题目 【2015 年国考省级以上第四题】阅读“给定资料 4”,谈谈你从中国高铁、中兴通讯和中国装备制造业的发展中能分别获得哪些启示。(20 分) 要求&#xff1a;(1)紧扣材料,重点突出&#xff1b;(2)观点明确,表述有条理&#xff1b;(3)不超过 500 字。 材料 材料4&#xff1a…

Java全栈开发:宠物医院管理系统项目实战

Java全栈开发:宠物医院管理系统项目实战 项目介绍 本文将介绍一个基于Spring Boot + Vue.js的宠物医院管理系统的开发过程。该系统主要用于帮助宠物医院管理日常运营,包括患者管理、预约挂号、处方开具等功能。 技术栈 后端技术 Spring Boot 2.7.xSpring SecurityMyBatis…

BERT的中文问答系统36-2

为了使聊天机器人在生成答案时不依赖于特定的训练数据集&#xff0c;我引入其他方法来生成答案。例如&#xff0c;可以使用预训练的语言模型&#xff08;如BERT&#xff09;直接生成答案&#xff0c;或者使用搜索引擎来获取答案。以下BERT的中文问答系统36-1改进后的代码 1.引入…

升级智享 AI 直播三代:领航原生直播驶向自动化运营新航道

在瞬息万变的数字商业世界&#xff0c;直播行业恰似一艘破浪前行的巨轮&#xff0c;原生直播作为初始 “航船”&#xff0c;在历经风雨后&#xff0c;终于迎来智享 AI 直播三代这股强劲 “东风”&#xff0c;校准航向&#xff0c;开启自动化运营的全新航道&#xff0c;驶向一片…

鸿蒙多线程应用-taskPool

并发模型 并发模型是用来实现不同应用场景中并发任务的编程模型&#xff0c;常见的并发模型分为基于内存共享的并发模型和基于消息通信的并发模型。 Actor并发模型作为基于消息通信并发模型的典型代表&#xff0c;不需要开发者去面对锁带来的一系列复杂偶发的问题&#xff0c;同…

JavaScript实用工具lodash库

Lodash中文文档: Lodash 简介 | Lodash中文文档 | Lodash中文网 Lodash是一个功能强大、易于使用的JavaScript实用工具库&#xff0c;它提供了丰富的函数和工具&#xff0c;能够方便地处理集合、字符串、数值、函数等多种数据类型。通过使用Lodash&#xff0c;开发者可以大幅…

数据结构-最短路径问题

一.问题分类 二.无权图单源最短路算法 dist[]数组记录的是个个顶点到源点的距离这个数组的下标表示顶点 源点到自己的距离是0,dist[s]0 path[]数组记录的是这个顶点的前驱&#xff0c;可以同过这个数组找到源点到个个顶点的距离 代码如下 void Unweighted(MGraph Graph, Ver…

ulimit -n是1024无法启动redis

ulimit -n 命令显示的是当前 shell 会话中可以打开的最大文件描述符数。如果这个值设置得太低&#xff0c;可能会导致 Redis 无法启动&#xff0c;因为 Redis 需要大量的文件描述符来处理客户端连接、持久化文件等。 默认情况下&#xff0c;Redis 可能需要更多的文件描述符&am…