关系运算符
< > <= >= == !=
- 所有的关系运算符都是二元运算符,左侧和右侧可以是变量,也可以是常量,还可以是表达式;举例:a>b、5>6、a+b>c
- 关系运算符运算的结果是布尔类型,要么为真(非0,true),要么为假(0,false)
说明:
- 在标准C中没有布尔类型,非0代表真,0代表假
while(0)循环一次都不执行
while(1)死循环,无限循环 - 真在输出的结果为1,假在输出的结果为0
printf(“%d\n”,3<2);结果为0
printf(“%d\n”,3>2);结果为1
说明:用作条件判断的时候非0代表真,但是系统输出的真的结果是1
注意:
1. 算术运算符的优先级高于关系运算符 例如:2+3>1+1
2. 关系运算符是二元运算符,不要连用 例如:5>a>1(恒等于1) 3<b<10(恒等于1)可以编译和运行,不报错,没有意义。 正确写法:a<5&&a>1,b<3&&b<10
3. 不能将==
写成=
,==
是关系运算符,=
是赋值运算符
4. 一般浮点型进行比较,建议将两个数相减,结果和0进行比较,如果等于0表示这两个浮点数相等。
案例1:
float a=22.2
float b=22.2
ab结果为真;a!=b结果为假,哪怕正确,也不这样做,应该的做法为:a-b0
案例2:
float x=2.0
float y=11.1 //近似存储:11.099995
float z=x*y //实际是:22.199999,我们以为是22.2
z=22.2 结果为假
两个浮点数的比较:两个浮点数相减跟0比较
a-b0结果为真,说明a等于b;如果为假,a不等于b
a-b0.000001;结果是真,人为的认为0.000001的误差能够接受,我们也认为a等于b