五:C语言-操作符

五:操作符

1.关系操作符:

在C语言中用于比较的表达式,称为 “关系表达式” ,里面使用的运算符就称为 “关系运算符” ,主要有下面六个:

关系运算符描述
>大于运算符
<小于运算符
>=大于等于运算符
<=小于等于运算符
==相等运算符
!=不相等运算符

注意:

  • 关系表达式通常返回10,表示真或假
  • 在C语言中,0表示假;所有非0的值表示真
  • 关系表达式常用于ifwhile结构
  • 在C语言中==表示关系运算符;=表示赋值运算符

多个关系运算符不宜连用:

#include <stdio.h>
int main()
{int a = 20;int b = 60;int c = 90;if(b < c < a){printf("xxx\n");}else{printf("mmm\n");}return 0;
}

注意:

因为关系符是从左到右计算,所以实际执行的是(b < c) < ab < c返回01

所以最终是01与变量a进行比较

如果要判断变量c的是否在ab之间,应该使用下面的写法:

#include <stdio.h>
int main()
{int a = 20;int b = 60;int c = 90;if(b < c && c < a){printf("xxx\n");}else{printf("mmm\n");}return 0;
}

注意: 由于不满足c < a这个条件,所以打印mmm

2.逻辑操作符:

逻辑运算符提供逻辑运算功能,用于构建更复杂的表达式,主要有下面三个运算符:

逻辑运算符描述
&&与运算符,表示并且:两侧表达式都为真,则为真,否则为假
`
!逻辑取反运算符(改变单个表达式的真假)

示例1 – 逻辑取反运算符:

#include <stdio.h>
int main()
{int t = 0; // 表达式为假if(!t) // 表达式被取反运算符变为真{printf("真\n"); // 此时因表达式为真所以打印输出}return 0;
}

示例2 – 与运算符:

#include <stdio.h>
int main()
{int a = 1;printf("请输入你的年龄:");scanf("%d", &a);if (a >= 1 && a <= 18) // 如果两个条件同时满足则执行真,否则执行假printf("真\n");elseprintf("假\n");return 0;
}

示例3 – 或运算符:

#include <stdio.h>
int main()
{int a = 0;printf("请输入月份:");scanf("%d",&a);if(a == 1 || a == 2 || a == 12)printf("是冬季\n");elseprintf("不是冬季\n;");return 0;
}

3.闰年的判断:

输入一个年份year,判断year是否为闰年:

闰年的判断:

  1. 能够被4整除并且不能够被100整除的是闰年
  2. 能够被400整除的是闰年

示例1 – 第一种写法:

#include <stdio.h>
int main()
{int year = 0;printf("请输入年份:");scanf("%d",&year);if(year % 4 == 0 && year % 100 != 0)printf("是闰年\n");else{if(year % 400 == 0)printf("是闰年\n");}return 0;
}

示例2 – 第二种写法:

#include <stdio.h>
int main()
{int year = 0;printf("请输入年份:");scanf("%d",&year);if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))printf("是闰年\n");elseprintf("不是闰年\n");return 0;
}

4.短路问题:

C语言逻辑运算符有一个显著的特点,它总是先对左侧的表达式求值;再对右边的表达式求值,这个顺序是固定的。如果左边的表达式满足逻辑运算符的条件,就不再对右边的表达式进行求值,这种情况便被称为短路

  • 对于&&操作符来说,当左边表达式的结果为假的时候,右边的表达式便不再执行
  • 对于||操作符来说,当左边表达式的结果为真的时候,右边的表达式便不再执行

像这种仅根据左边表达式的结果就知道整个表达式的结果,便不再对右边的表达式进行运算的称为短路求值

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

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

相关文章

wifi信号处理的CRC8、CRC32

&#x1f9d1;&#x1f3fb;个人简介&#xff1a;具有3年工作经验&#xff0c;擅长通信算法的MATLAB仿真和FPGA实现。代码事宜&#xff0c;私信博主&#xff0c;程序定制、设计指导。 &#x1f680;wifi信号处理的CRC8、CRC32 目录 &#x1f680;1.CRC概述 &#x1f680;1.C…

定时器的计数模式 定时器中断时钟配置

目录 一&#xff0c;定时器的计数模式 二&#xff0c;定时器中断时钟的配置 三&#xff0c;输入和输出原理 四&#xff0c;PWM波的小简介 一&#xff0c;定时器的计数模式 1.1 定时器的计数模式分别有三种 1.2 定时器溢出的时间&#xff08;中断&#xff0c;事件产生的时间…

QT多线程下,信号槽分别在什么线程中执行,如何控制?

可以通过connect的第五个参数进行控制信号槽执行时所在的线程 connect有几种连接方式&#xff0c;直接连接、队列连接和 自动连接 直接连接&#xff08;Qt::DirectConnection&#xff09;&#xff1a;信号槽在信号发出者所在的线程中执行 队列连接&#xff08;Qt::QueuedConn…

C#面 :请列举官方常用的中间件?

在C#领域中&#xff0c;常用的官方中间件有以下几种&#xff1a; ASP.NET Core Middleware&#xff1a;ASP.NET Core中的中间件是一种处理HTTP请求和响应的组件。它们可以在请求到达控制器之前或响应返回给客户端之前执行一些操作&#xff0c;例如身份验证、日志记录、异常处理…

python初学者知识点笔记更新

文章目录 1.main函数入口2.__init__.py 文件作用3.from .applications import server解释4.变量没有修饰&#xff0c;直接创建使用1. 内置数据类型和函数2. 类和对象3.总结 5.mod app.__module__6.集合对比区分集合类型&#xff1a;混合集合类型 7.安装包失败 1.main函数入口 …

vitest 单元测试应用与配置

vitest 应用与配置 一、简介 Vitest 旨在将自己定位为 Vite 项目的首选测试框架&#xff0c;即使对于不使用 Vite 的项目也是一个可靠的替代方案。它本身也兼容一些Jest的API用法。 二、安装vitest // npm npm install -D vitest // yarn yarn add -D vitest // pnpm pnpm …

Linux 06-01:简易shell编写

考虑一下这个与shell典型的互动&#xff1a;ls、ps 用下图的时间轴来表示事件的发生次序。其中时间从左向右。shell由标识为sh的方块代表&#xff0c;它随着时间的流逝从左向右移动。shell从用户读入字符串"ls"。shell建立一个新的进程&#xff0c;然后在那个进程中运…

vs code 启动react项目,执行npm start报错原因分析

1.执行 npm start错误信息&#xff1a;npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1 npm start ~~~ CategoryInfo …

2024年5000元投影仪推荐:五千元最值得买的三款家用激光投影推荐

五千元是很多家庭购买投影仪会选择的价位&#xff0c;这个价位的投影一般属于中高端产品&#xff0c;如果懂配置&#xff0c;知道怎么选的朋友可以选到一款性价比颇高的投影&#xff0c;但是如果不会选不懂配置可能会花冤枉钱。所以五千元价位的投影该如何选择&#xff1f;市面…

企业知识库用不起来?试一下用HelpLook同步钉钉组织架构

提升企业管理和协同效率已成为增强竞争力的关键。企业通过知识管理&#xff0c;搭建内部知识库&#xff0c;将分散的经验和知识转化为系统化流程&#xff0c;减少重复解释&#xff0c;促进业务高效运作。这为企业提供了坚实的基础。 企业知识库面临的挑战 尽管传统知识库内容丰…

Jeecgboot vue3的选择部门组件JSelectDept如何实现只查询本级以及子级的部门

jeecgboot vue3的文档&#xff1a;地址 JSelectDept组件实现了弹窗然后选择部门返回的功能&#xff0c;但部门是所有数据&#xff0c;不符合需求&#xff0c;所以在原有代码上稍微改动了一下 组件属性值如下&#xff1a; 当serverTreeDatafalse的时候&#xff0c;从后端查询…

2024年7月9日~2024年7月15日周报

目录 一、前言 二、完成情况 2.1 特征图保存方法 2.1.1 定义网络模型 2.1.2 定义保存特征图的钩子函数 2.1.3 为模型层注册钩子 2.1.4 运行模型并检查特征图 2.2 实验情况 三、下周计划 一、前言 本周的7月11日~7月14日参加了机器培训的学习讨论会&#xff0c;对很多概…

通过MATLAB控制TI毫米波雷达的工作状态之TLV数据解析及绘制

前言 前一章博主介绍了如何基于设计视图中的这些组件结合MATLAB代码来实现TI毫米波雷达数据的实时采集。这一章将在此基础上实现TI毫米波雷达的TLV数据解析。过程中部分算法会涉及到一些简单的毫米波雷达相关算法,需要各位有一定的毫米波雷达基础。 TLV数据之协议解析 紧着…

Web开发:<p>标签作用

p作用 介绍基本用法特点和用途样式化段落嵌套内容正确的嵌套&#xff1a;不正确的嵌套&#xff1a; 可访问性示例 介绍 在Web开发中&#xff0c;<p> 标签用于定义段落&#xff08;paragraph&#xff09;。它是一个块级元素&#xff0c;意味着它会在文档中占据其自身的块…

数字孪生技术如何助力低空经济飞跃式发展?

一、什么是低空经济&#xff1f; 低空经济&#xff0c;是一个以通用航空产业为主导的经济形态&#xff0c;它涵盖了低空飞行、航空旅游、航空物流、应急救援等多个领域。它以垂直起降型飞机和无人驾驶航空器为载体&#xff0c;通过载人、载货及其他作业等多场景低空飞行活动&a…

React 实现五子棋

简介 本文将会基于React 实现五子棋小游戏&#xff0c;游戏规则为先让5颗棋子连成1线的一方获胜。 实现效果 技术实现 页面布局 <div><table style{{border: 1px solid #000, borderCollapse: collapse, backgroundColor: lightgray}}><tbody>{squares.ma…

普中51单片机:定时器与计数器详解及应用(七)

文章目录 引言定时器工作原理TMOD定时器/计数器工作模式寄存器定时器工作模式模式0(13位定时器/计数器)模式1(16位定时器/计数器)模式2(8位自动重装模式)模式3(两个8位计数器) 定时器配置流程代码演示——LED1间隔1秒闪烁代码演示——按键1控制LED流水灯状态代码演示——LCD160…

GaussDB DWS 详解

文章目录 GaussDB DWS 详解一、简介二、DWS的分布式架构架构概述关键组件 三、分布式查询数据查询流程SQL执行的示例 批注&#xff1a;本文引鉴了Forlogen博主的一些内容&#xff0c;并加以补充&#xff0c;以供学习了解。 GaussDB DWS 详解 一、简介 DWS(Data Warehouse Ser…

免费分享一套SpringBoot+Vue农产品在线销售(在线商城)管理系统【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue农产品在线销售(在线商城)管理系统&#xff0c;分享下哈。 项目介绍 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发…

aidl的Android.bp脚本中java有哪些参数可以配置的?

在Android的Blueprint构建系统中&#xff08;使用Android.bp文件&#xff09;&#xff0c;当你定义一个AIDL&#xff08;Android Interface Definition Language&#xff09;服务或客户端时&#xff0c;你实际上并不是直接在Android.bp中配置AIDL文件本身的Java参数&#xff0c…