对数据类型进行补充——逻辑类型及运算
一.关于stdbool.h(布尔类型文件)
(1)C语言标准(C89)没有定义布尔类型,使用true/false会出现错误;
(2)头文件:#include<stdbool.h>;
(3)输出仍然为整数,而不会是true/false的值;
二.逻辑运算(对逻辑量进行运算,结果只有0或1)
——————注明:逻辑量是关系运算或逻辑运算的结果
(1)三种运算符及其意义
- !——逻辑非————示例:a!b;
- ||——逻辑或————示例:a||b(二者满足一个);
- &&——逻辑与————示例: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;
意义:逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)