C语言笔记 12

逻辑类型


bool:在"#include <stdbool.h>"之后就可以使用bool和true、false

并没有真正的bool量的类型

逻辑运算


  • 逻辑运算是对逻辑量进行的运算,结果只有0或1
  • 逻辑量是关系运算或逻辑运算的结果
运算符 描述 示例 结果
! 逻辑非 !a 如果a是true结果就是false;如果a是false结果就是true
&& 逻辑与 a&&b 如果a和b都是true,结果就是true;否则就是false
|| 逻辑或 a||b 如果a和b有一个是true,结果为true;两个都是false,结果为false

如果要表达数学中的区间 ,如:x(4,6)或x4,6,用C如何写?

像4<x<6这样的式子,不是C能正确计算的式子,因为4<x的结果是一个逻辑值(0或1)

正确表达式:x>4&&x<6

判断一个字符是否是大写字母

c>='A'&&c<='Z'

* !age<20 先!与age结合,在与<20判断;而不是age>=20

优先级

! > && > || (括号可以提高优先级)

优先级 运算符 结合性
1 () 从左到右
2 ! + - ++ -- 从右到左(单目的+和-)
3 * / % 从左到右
4 + - 从左到右
5 < <= > >= 从左到右
6 == != 从左到右
7 && 从左到右
8 || 从左到右
9 = += -= *= /= %= 从右到左

短路

逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算

  • 对于&&,左边是false时就不做右边了
  • 对于||,左边是true时就不做右边了

不要把赋值,包括复合赋值组合进表达式!

条件运算和逗号运算


条件运算符

eg, count = (count > 20)?count - 10 : count + 10;

?前是条件,后是条件满足时的值,:后是条件不满足时的值

相当于

if ( count > 20 )

count = count - 10;

else

count = count +10;

条件运算符是自右向左结合的

程序太复杂,可读性差

逗号运算符

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有的运算符中最低的,所以它两边的表达式会先计算,而右边的表达式的值就留下来作为逗号运算的结果。

eg, i = 3+4 , 5+6

3+4赋给了i,而5+6没有赋给任何变量

逗号表达式主要在for中使用

eg, for( i=0, j=10; i++, j-- )......

相关推荐
拂拉氏3 分钟前
【知识讲解-题目讲解】 统计满足K约束的子字符串数量2 (滑动窗口+前缀和+二分查找+分析)
算法·前缀和·二分查找·滑动窗口
Go Work2 小时前
两个等值条件摆着,MySQL 偏要全表扫
经验分享·笔记
Oll Correct2 小时前
Adobe illustrator 案例十四:花元素标志草图绘制
笔记·ui·adobe·illustrator
通信小呆呆5 小时前
电子战抗干扰技术:当“不被干扰”成为一种系统
算法·通信·mimo·isac
笑容掩饰我的失落5 小时前
区块链从小白到精通(八):从零实现一个标准 ERC-20 代币(完整可运行代码)
算法·区块链·php·智能合约·哈希算法
Severus_black5 小时前
【C++初阶】Stack、Queue算法题大练兵!
c语言·c++·算法·stl
每月一号准时摆烂7 小时前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
唐青枫7 小时前
C 语言 strcpy() 用法详解与实战 Demo
c语言
2601_967979128 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
程序猿打工仔8 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法