对数据类型进行补充——逻辑类型及运算

发布时间 2023-11-13 12:53:26作者: 瑜阳

一.关于stdbool.h(布尔类型文件)

(1)C语言标准(C89)没有定义布尔类型,使用true/false会出现错误;

(2)头文件:#include<stdbool.h>;

(3)输出仍然为整数,而不会是true/false的值;

二.逻辑运算(对逻辑量进行运算,结果只有0或1)

——————注明:逻辑量是关系运算或逻辑运算的结果

(1)三种运算符及其意义

  1. !——逻辑非————示例:a!b;
  2. ||——逻辑或————示例:a||b(二者满足一个);
  3. &&——逻辑与————示例:a&&b(二者同时满足);

(2)TRY(表达数学区间)

举例:1.x∈[4,6]————写出c的表达式————(x>4)&&(x<6)
例2.如何判断一个字符c是否为大写字母:————c>='A'&&c<='Z'

特殊例子(含有两个运算符)!age<20

!为单目运算符,单目运算符的优先级高于双目运算符,所以!会与age结合在一起,如果age等于0,那么!age就会变成1,否则!age就会为0,然后再与age进行比较。

同理,若需要表达age<20的反面,则应该整体加一个括号——表示为!(age<20)

(3)优先级

!>&&>||;
关系运算>逻辑运算>赋值运算(+=、-=、*=…)

(4)短路

错例:a>0 &&a++>1/a==6 && b+=1;
意义:逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算

因此我们不应该把赋值,包括复合赋值组合进表达式.