C语言中逻辑运算符的使用方法及优先级关系

一、人物简介第一位闪亮登场,有请今后会一直教我们c语言的老师 —— 自在。第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。二、构成和表示方式逻辑运算符是用来比较和操作布尔值的运算符c语言中的逻辑运算符主要有3个,如下表所示运算符名称示例描述
&& 与 a && b 当a和b都为真时,返回真

! 非 !a 如果a的条件为真,返回假
逻辑运算符的两边可以是变量、数值 或 表达式
变量a && ba || b!a数值
5 && 320 || a!0表达式
a+b && ca-b || c-a!(a+c)三、逻辑运算符的应用1、运算结果逻辑运算符的运算结果为0(假)或者1(真)
当条件成立时结果为真,条件不成立结果则为 假。1.1 与运算实例演示#include int main() { printf(1 && 2 结果为%dn, 1 && 2); printf(0 && 3 结果为%dn, 0 && 3); printf(5 && 0 结果为%dn, 5 && 0); printf(0 && 0 结果为%dn, 0 && 0); return 0;}运行结果
1.2 或运算实例演示#include int main() { printf(1 || 2 结果为%dn, 1 || 2); printf(0 || 3 结果为%dn, 0 || 3); printf(5 || 0 结果为%dn, 5 || 0); printf(0 || 0 结果为%dn, 0 || 0); return 0;}运行结果
1.3 非运算实例演示#include int main() { printf(!2 结果为%dn, !2); printf(!0 结果为%dn, !0); return 0;}运行结果
!! ,将任何值转换为布尔值
!!可以将一个整数、字符或指针值转换为一个布尔值。例如,下面的代码片段中,将字符串转换为布尔值,并将其用于条件判断:
#include int main(){ char *str = hello; int bool_value = !!str; if(bool_value) { printf(str is not nulln); } else { printf(str is nulln); } return 0;}运行结果
由于hello是一个非空字符串,所以!!将其转换为1,if条件语句的条件将被认为是真,所以第一个printf语句将被执行。
反之,如果字符串“str”为null,则!!将其转换为0,if条件将被认为是假,第二个printf语句将被执行。
2、运算符嵌套逻辑运算符是允许嵌套使用的,运算的结果可以继续作为逻辑运算符的一个参数实例演示#include int main() { int a = !( (6 > 3) && (11 - 20) && (0 - 1) ); int b = !( (5 + 4) && (7 - 8) && (3 3的结果为1,11 - 20的结果为-9,所以(6 > 3) && (11 - 20) && (0 - 1)等价于1 && -1,结果为1a = !(1),结果为0第二个嵌套表达式分析
5 + 4的结果为1,7 - 8的结果为-13 < 2的结果为0所以(5 + 4) && (7 - 8) && (3 < 2)等价于9 && 0,结果为0a = !(0),结果为13、优先级先来看这个实例#include int main() { int a = !( 1 || -1 && 0 ); printf(a = %dn, a); return 0;}那么实际的运行结果如何呢?
因为&& 的优先级高于||,所以-1 && 0会被先运算,结果为01 || -1 && 0等价于1 || 0,结果为1a = !(1),结果为0逻辑运算符的优先级顺序为 ∣∣ < && < !
有兴趣的小伙伴可以参考上面的代码来验证&&和!的优先级关系哦!
小结通过本文的讲解,我们学会了3种逻辑运算符的使用方法及优先级关系,下一篇文章,我们将讲解位运算符。

消息称陈旭东重回联想接管全球PC业务
上海铁塔助力上海小汤山医院成功完成了5G信号开通
提供了更准确、可靠和精密的电阻测量方法:pcb开尔文走线
十四五期间大同电网将走向何处?
10分钟搞定如何在QT环境模拟LVGL V8
C语言中逻辑运算符的使用方法及优先级关系
首款全球通用AC-DC恒流LED驱动器ZD832
三星和LG电子深耕自动驾驶车辆图像传感器市场
使用Arduino制作一个简单的纯正弦波逆变器
机器视觉项目案例
小米还有新机要发,莫非是小米6
WBG 如何迈向效率“1”的一步
数字化转型“优等生”都做了哪些尝试
造车新势力动作频繁:前途另辟蹊径,云度年销售35000辆
待机电源非隔离恒压驱动电源icSM7015替换PN8024R
搭建百富链城区块链推广分红系统
Wacom创始人大会:会议主要内容是关于VR和MR的开发
锐捷风电场远程维护解决方案的特点及功能实现
长春中国第一汽车集团历史回顾
蓝牙究竟比WiFi厉害在哪里,看完本文你就知道了