目录
逻辑运算符
今天我们谈一下运算符的使用和注意点。
运算符 描述 示列 结果
! 逻辑的“非” !a a为对的,结果错的
&& 与 a&&b ab都是对的,结果才能是对的
\\ 或 a\\b 有一个是对的,结果都是对的
逻辑运算符的结果只有0或者1
好,那我们举一个例子,x在4到6开区间,我们不能用4<x<6.因为4判断是否小于x,是4<x变成false或者true.会使前面变成0或者1和6作比较,那这个结果一定不会达到我们开始的区间预期,所以我们要用&&来表达,x>4&&x<6来表达。
那我们运算还要注意一个一个优先级,优先级呢,我来列一个,
() !+ ++ -- * / % + - < <= > >= == != && //
一个tab间隔表示一个组,从左到右优先级逐渐下降
短路
我们在用这三个运算符时候有一种情况,就是短路,短路通常是一个好事,可以加快运算速度,但是一旦碰到赋值情况就不是那么美妙了。
我们来看看
x==8 && y==2 这个情况,如果x不等于8,那我们计算机就不会看下一步了,直接报错,很好,可以加快速度。
x==8 && y+=2 这种情况,当x不等于8,那我们的y的赋值运算不能进行了,直接跳过
所以我们不要把赋值放在表达式里面。
同理 // 和&&一样。
条件运算符
例子 count = (count > 20)? count - 10 : count + 10;
这里面?前面是判断条件是否满足,满足count为 : 前的值,不满足为 : 后面的值
但是这个会让人看起来较为复杂,不如if else if那么直白,所以用的少。
逗号运算符
逗号运算符的优先级是所有运算符中最低的,先算逗号左边的,再算逗号右边的,把逗号右边的值作为他的结果。
例子
n = 3 + 5, 8 + 9; 这个式子中n的结果会是8,因为等号优先级大于, 如果想取得就加()
n = (3 + 5, 8 + 9); 这个式子结果就是17.
#include <stdio.h>
int main()
{
int x;
x = 3 + 5,8 + 9;
printf("%d",x);
return 0;
}
有兴趣的话你们可以去试试,看到这里我们会有疑问,逗号运算符有什么意义呢?一般用在for的循环语句,这里就不多说了,再见了。