目录
前言
这里介绍三种操作符,关系、条件和逻辑,都很好理解。
一、关系操作符
C语言中用于比较的表达式,称为"关系表达式",里面使用的运算符就称为"关系运算符"
即
> : 大于运算符
< : 小于运算符
>= : 大于等于运算符
<= : 小于等于运算符
== : 相等运算符
!= : 不相等运算符
关系运算符通常返回0或1来表示真假.
注 :
- == 和 = 是不同的,一个是相等一个是赋值,为了不混淆,可以将变量写在等号的右边(3==b),这样即使写错,编译器也会报错
- 多个运算符不宜连续使用. 如: i<j<k 它的判断方式:因为关系运算符是从左到右计算,所以先进行i<j的判断,返回0或1,接着将 0或1 与 k 进行比较。当想用多个运算符时,要使用&&(逻辑与)连接,即:i<j&&j<k
二、条件操作符
语句形式: exp1?exp2:exp3
条件操作符的计算逻辑:
如果 exp1为真,则exp2计算
exp1为假,则exp3计算
计算的结果是整个表达式的结果
例子:
#include <stdio.h> int main(){ int a=(2>1)?2:1; printf("判断结果为%d",a); return 0; }
输出结果:
三、逻辑运算符
作用: 提供逻辑判断功能
! : 逻辑取反运算符
&& : 逻辑与运算符,表并且
|| : 逻辑或运算符,表或者
1.逻辑取反运算符 !
a | !a |
非0 | 0 |
0 | 1 |
2.逻辑与运算符 &&
a | b | a&&b |
非0 | 非0 | 1 |
非0 | 0 | 0 |
0 | 非0 | 0 |
0 | 0 | 0 |
3.逻辑或运算符 ||
a | b | a||b |
非0 | 非0 | 1 |
非0 | 0 | 1 |
0 | 非0 | 1 |
0 | 0 | 0 |
4.短路
C语言逻辑运算符有一个特点,它总是先对左侧的表达式求值,再对右边的表达式求值
若左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这种情况叫"短路"
仅仅根据左侧操作符的结果就能知道整个表达式的结果,不再对右操作符进行计算的运算称为"短路计算"
例子:
#include <stdio.h> int main() { int a = 0; int b = 1; int c = 2; if (!a) { printf("第一个if成立\n"); if (a < b || b > c) { printf("第二个if成立\n"); if (a > b && b < c) { printf("第三个if成立\n"); } } } return 0; }
输出结果:
a为假,!a为真,结果为真;
a<b为真,又因为||,所以不管(b>c)为真为假,结果都为真
a>b为假,又因为&&,所以不管(b<c)为真为假,结果都为假
总结
总的来说,这些操作符都是日常常用的,多多运用,避免出错。