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

一.关于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)优先级

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

补充1):条件运算:

1.常见的条件运算的注意事项为条件运算符?表示条件满足,:表示条件不满足;
2.条件运算符是自右向左结合的;

补充2):逗号运算

在C语言中,逗号是一种运算符,用来连接两个表达式,并以其右边的表达式的值作为它的结果,且逗号运算符的优先级在所有运算符中最低。
我们以一段代码举例:

1. #include <stdio.h>

int main(){
int i;
i = 3+4,5+6;
printf("%d\n",i);
return 0;
}编译器会进行提示:提示5+6在程序中并未应用,i的结果为7;这是因为逗号的优先级低于等号,所以优先得出i=3+4=7;
2.接下来我们对代码进行调整

#include <stdio.h>

int main(){
int i;
i = (3+4,5+6);
printf("%d\n",i);
return 0;
}

我们将原来的代码调整为i=(3+4,5+6)试图对i进行整体运算,但是结果却显示i的值为11,编译器提示3+4在程序中并未应用,这里其实是先运算3+4,5+6,逗号运算符的一个性质是将右边的值赋给左边,所以结果为11

3.逗号表达式只应用于for的循环语句中;

(4)短路

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

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

posted @   瑜阳  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示