C语言程序设计(17)

105 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情
强制类型转换

要把一个量强制转换成另一个类型(通常是较小的类型),需要:(类型)值;

比如:(int)10.2;

注意这个时候的安全性,小的量不总能表达大的量。

注意:强制类型转换只是从那个变量计算出了一个新的类型的值,,它并不改变那个变量,无论是值还是类型都不改变。

强制类型转换的优先级高于四则运算;int i=(int)(a\b);

其它运算:逻辑、条件、逗号

bool(布尔类型)

需要在开头加上头文件:#include<stdbool.h>

之后就可以用bool和true,false。

输出只能是1或0,没有true或false。

逻辑运算

逻辑运算是对逻辑量进行的运算,结果只有0或1;

逻辑量是关系运算或逻辑运算的结果。

!:逻辑非,!a(如果a是true结果就是false,如果a是false结果就是true);

&&:逻辑与,a&&b(如果a和b都是true,结果就是true;否则就是false);

||:逻辑或,a||b(如果a和b有一个为true或者都为true结果为true,两个都是false结果为false)。

如果要表达数学中的区间,例如x∈(4,6)用C写:x>4&&x<6;

如何判断一个字符c是否为大写字母:c>='A'&&c<='Z';

逻辑运算符优先级普遍低于比较运算符,单目运算符优先级高于双目运算符。

所以说:!age<20;(!属于单目运算符)会先做!age,而其结果只有0或1,所以整个表达式最终的结果永远为1。

优先级

!>&&>||,

image.png

短路

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

对于&&,左边是false就不做右边;

对于||,左边是true就不做右边。

所以:不要把赋值,或者复合赋值组合进表达式。