c语言-逻辑运算符和逻辑表达式

一 认识三个逻辑运算符

        1.&& “逻辑与” 一假则假  2.|| “逻辑或” 一真则真 3.! “逻辑非” 

逻辑与和逻辑或都是双目运算符,要求两个操作数;逻辑非为单目运算符

优先级为 !> 算术运算符 > 关系运算符 > &&和||  > 赋值运算符 

 运算符可以通过括号展开或收缩 如下

( a > b ) && ( x > y ) = a > b && x > y

二 逻辑表达式 

        逻辑表达式的值应该是一个逻辑量“ 真”或“假”。C语言编译系统在表示逻 辑 运 算 结 果 时 ,用 数 值 1 代 表 “ 真 ” , 用 0代 表 “ 假 ” , 但 在 判 断 一 个 量 是 否 为“ 真 ” 时 ,以 0 代 表 “ 假”,以非0代表“真”。即将一个非零的数值认作为“真”。例如:
(1)若a= 4,则!a的值为0。因为a的值为非0.被认作“真”,对它进行“非运算”,得 “假”。“假”以0 代表。
( 2 ) 若 a = 4 , b = 5 • 则 a && b 的 值 为 1 。 因 为 a 和b 上 均 为 非 0 。被 认 为 是 “ 真 ” ,因 此 a &&b的 值 也 为“ 真 ” ,值 为 1 。
( 3 )a 和 b 值 分 别 为 4 和 5 ,a || b 的 值 为 1 。
( 4 ) a 和 b 值 分 别 为 4 和 5 , !a l l b 的 值 为 1 。
(5 ) 4 && 0 || 2的 值 为 1 。

        通过这几个例子可以看出,由系统给出的逻辑运算结果不是0,就是1, 不可能是其他数值。而在逻辑表达式中作为参加逻辑运算的运算对象可以是0(“ 假”)或任何非0的数值 〈按“ 真” 对待)。如果在 一个表达式中不同位置上出现数值,应区分哪些是作为数值运算或关系运算的对象,哪些作为逻辑运算的对象。例如:
5> 3  && 8 < 4 - !0
        表达式自左至右扫描求解。首先处理“5>3”(因为关系运算符优先于逻辑运算符 &&)。在关系运算符>两侧的5和3作为数值参加关系运算,“5 >3”的值为1(代表真)。 再进行“1&.&.8<4- !0”的运算,8的左侧为“&.&”,右侧为“<”运算符,根据优先规则,应 先进行“<”的运算,即先进行“8<4- !0”的运算。现在4的左侧为“<”,右侧为“一”运算 符,而“一”优先于“<”,因此应先进行“4一10”的运算,由于“! ”的级别最高,因此先进行“!0” 的 运 算 , 得 到 结 果 1 。 然 后 进 行 “ 4 一 1 ” 的 运 算 ,得 到 结 果 3 , 再 进 行 “ 8 < 3 ” 的 运 算 ,得 0 ,最 后 进行“1 && 0”的运算, 结果为0。
        实 际 上 ,逻 辑 运 算 符 两 侧 的 运 算 对 象 不 但 可 以 是 0 和 1 ,或 者 是  0 和 非 0 的 整 数 ,也 可 以是字符型、浮点型、枚举型或指针型的纯量型数据。系统最终以0和非0来判定它们属于 “ 真 ” 或 “ 假 ” 。 例 如 : ’ c’ & &  ’ d ” 的 值 为 1 ( 因 为 ’ c’ 和 ’ d ' 的 A S C I I 值 都 不 为 0 . 按 “ 真 ” 处 理 ) 。 所以1 && 1的值为1.

由此我们可以和之前的if语句结合

if(x!=0)//如果x不等于0,执行。
if(x) //表达式是变量,如果x不等于0,则条件判断结果为真,执行。
if(1)//表达式是非零整数,条件判断结果为真,执行。
if(0)//表达式为0,判断结果为假不执行。
if(x+3.5)//若x+3.5不等于0,判断结果为真,执行

进一步实践 来判断是否闰年

if ( year % 4 !=0 ) || (year%100 == 0 && year %400!=0)//if中用==

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

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

相关文章

【Blockly图形化积木编程二次开发学习笔记】1.工具箱的实现

文章目录 Blockly 版本选择上手 Blockly 版本选择 在【兰州大学】Blockly创意趣味编程【全36讲】主讲教师&#xff1a;崔向平 周庆国中提到&#xff0c;在18年6月份之前的版本中&#xff0c;可以通过安装依赖库的方式&#xff0c;打开开发者工具的离线版本&#xff0c;但是新版…

框架设计MVVM

重点&#xff1a; 1.viewmodel 包含model 2.view包含viewmodel,通过驱动viewmodel去控制model的数据和业务逻辑 // Test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector>using namespace std;#p…

iSCSI 网络存储服务部署

一、介绍 iSCSI &#xff08;Internet Small Computer System Interface&#xff09;&#xff0c;互联网小型计算机系统接口&#xff1b;iSCSI 是SCSI接口 与以太网技术相结合的新型存储技术&#xff0c;属于ip san的一种&#xff0c;可以用来在网络中传输 SCSI 接口的命令和数…

将一个Git仓库地址上传到多个远程仓库

大家好&#xff0c;我是邵奈一&#xff0c;一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为&#xff1a;被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年&#xff0c;我整理了很多IT技术相关的教程给大家&#xff0…

逆向案例二十一——sm2加密,某信登录密码加密

网址&#xff1a;电信账号登录 这个登陆页面&#xff0c;会需要过滑块验证码&#xff0c;先不管他&#xff0c;直接找到登陆包&#xff0c;在登陆包之前&#xff0c;有一个这个包返回一串不知道啥作用的先记着。 找到登陆包&#xff0c;密码进行了加密 用xhr断点调试&#xff…

Jmeter常用组件及执行顺序

一 常用组件 1.线程组 Thread Group 线程组是一系列线程的集合&#xff0c;每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中&#xff0c;每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中&#xff0c;线程组组件运行用户设置线程数量、初始化方式等…

JuiceFS、Ceph 和 MinIO 结合使用

1. 流程图 将 JuiceFS、Ceph 和 MinIO 结合使用&#xff0c;可以充分利用 Ceph 的分布式存储能力、JuiceFS 的高性能文件系统特性&#xff0c;以及 MinIO 提供的对象存储接口。以下是一个方案&#xff0c;介绍如何配置和部署 JuiceFS 使用 Ceph 作为其底层存储&#xff0c;并通…

Linux进程——进程优先级与僵尸进程孤儿进程

文章目录 僵尸进程变成僵尸状态的过程 孤儿进程进程优先级如何修改进程优先级为什么优先级有范围 僵尸进程 僵尸状态进程本质上就是死亡状态 在进程死亡之后&#xff0c;不会直接对进程进行释放&#xff0c;而是先会处理一些后事 进程在结束退出的时候&#xff0c;也会有一些…

力扣第六题——Z字形变换

题目介绍 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从…

spring-cloud和spring-cloud-alibaba的关系

首先Spring Cloud 是什么&#xff1f; Spring Cloud是一系列框架的有序集合&#xff0c;它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发。Spring Cloud提供了微服务架构开发所需的多种组件和工具&#xff0c;如服务发现注册、配置中心、消息总线、负载均…

GA-Kmeans-Transformer-GRU时序聚类+状态识别组合模型,创新发文无忧!

GA-Kmeans-Transformer-GRU时序聚类状态识别组合模型&#xff0c;创新发文无忧&#xff01; 目录 GA-Kmeans-Transformer-GRU时序聚类状态识别组合模型&#xff0c;创新发文无忧&#xff01;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GA-Kmeans-Transformer-GRU时…

代码随想录训练营第三十七天 完全背包问题 518零钱兑换问题II 377组合总和IV

什么是完全背包&#xff0c;就是在01背包的基础上每个物品可以放无数次&#xff0c;在代码中和01背包不一样的地方只有在遍历顺序上不一致&#xff0c;在遍历背包的顺序上 01背包是从后往前遍历&#xff0c;在完全背包中是从前往后遍历。 第一题&#xff1a; 原题链接&#x…

【Linux网络】poll{初识poll / poll接口 / poll vs select / poll开发多客户端echo服务器}

文章目录 1.初识pollpoll与select的主要联系与区别poll的原理poll的优点poll的缺点poll vs select 2.poll开发多客户端echo服务器封装套接字接口Makefile主函数日志服务聊天服务器 1.初识poll poll是Linux系统中的一个系统调用&#xff0c;它用于监控多个文件描述符&#xff08…

燃气管道老化,怎样能实时监测管网情况?

在能源管理与环境保护的交汇点上&#xff0c;一场前所未有的技术革命正在悄然兴起。随着全球对清洁能源需求的日益增长和对环境可持续性的高度重视&#xff0c;燃气作为清洁、高效、可靠的能源载体&#xff0c;其重要性不言而喻。然而&#xff0c;如何确保燃气的安全输送与使用…

新手教学系列——简单的服务配置项集中管理

前言 在开发和运维过程中,配置管理是一个非常重要但经常被忽视的环节。常用的配置文件格式包括env、ini和yaml等,它们非常适合模块级别的系统配置,尤其是一些敏感信息的配置,例如数据库连接字符串和密码等。但是,对于系统业务级别的配置,通常要求不需要重启服务即可更新…

易语言_判断循环首_循环判断首_计次循环首_变量循环首_区分-cnblog

判断循环首 如果判断条件为真&#xff0c;就进入循环条件 循环判断首 先执行一次&#xff0c;再判断循环条件 计次循环首 10为总循环次数&#xff0c;如果加i&#xff0c;i会记录当前是循环的第几次 变量循环首 变量循环首可以自定义每次循环增加的值

【Linux】文件管理常用命令【超详细】

文章目录 预防rm事故-血的教训&#x1f622;1. 使用别名&#xff1a;2. 启用回收站&#xff1a;3. 只读文件系统&#xff1a; 一、文件管理1.1 touch-文件创建1.2 rm-文件删除1.3 mkdir-目录创建1.4 rmdir-目录删除1.5 pwd-显示当前目录1.6 cd-切换当前目录1.7 ls-列出文件和目…

大模型日报 2024-07-15

大模型日报 2024-07-15 大模型资讯 Meta 开发 System 2 蒸馏技术&#xff0c;Llama 2 对话模型任务准确率接近 100% Meta 新研究提高推理任务性能。 美国启动「曼哈顿计划 2.0」&#xff0c;AI 进入奥本海默时刻&#xff1f;60 亿砸向无人机&#xff0c;已有 800 个 AI 项目 美…

【深度学习入门篇 ⑦】PyTorch池化层

【&#x1f34a;易编橙&#xff1a;一个帮助编程小伙伴少走弯路的终身成长社群&#x1f34a;】 大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; ) &#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…

Home Assistant在windows环境安装

Home Assistant是什么&#xff1f; Home Assistant 是一个开源的智能家居平台&#xff0c;旨在通过集成各种智能设备和服务&#xff0c;提供一个统一的、可自定义的家庭自动化解决方案。它可以允许用户监控、控制和自动化家中的各种设备&#xff0c;包括灯光、温度、安全系统、…