最近这几天完成了C语言的逻辑运算(&& || !)
&& 逻辑与表示只有当两个条件同时被满足时就输出为1(真),否则其中有一条不成立则为0(假)。其中与运算有一个短路效果就是: 当左边的表达式已经能够确认最终的结果时,右边是不会参与计算的。
比如:printf("%d\n",2 > 1 && b<10);
从(2 > 1)不难看出这显然就是不成立,所以最终的结果就是 不成立的(0),如果左边的表达式是成立的那么就会向表达式2进行判断。
|| 逻辑或运算:在与逻辑运算当中只有当其中有一个满足时条件才成立(1),如果表达式两边都不满足则不成立(0)。如果觉得复杂的话,可以想象成日常登录账号的时候提供两种登录方式:账号登录、扫码登录,那么此时与运算就是这样的逻辑用大白话讲就是二选一,只要你选择了密码登录自然就不能扫码登录了,如果你两个都不选那么你肯定登不进去的。
三元运算:
比较谁的值最大
int number = 10;
int a= 5;
int b =1;
temp = a > b ? a : b;
printf("%d", temp>b ? temp : b);
像这种还比较容易理解如果出现多个怎么看呢?
比如: temp > b ? temp > number ? temp : number : temp;
细心的你一眼就看出了一个规律就是 表达式中运算关系都是成对出现的 (?:),此时回到代码本身temp > b ?(temp > number ? temp : number): temp;括号当中就是一个单独,那么剩下的无非就是temp > b ? xx : temp;