课前知识提前学--关系运算符、逻辑运算符、运算符优先级
一 、相关知识学习
关系运算符用于对两个操作数进行比较,包括:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)。
关系运算符中 >、<、>=、<=具有相同的优先级并且高于具有相同优先级的!=、==,关系运算符的优先级高于赋值运算符而低于算术运算符。关系运算符的结合性均为左结合性。
关系表达式由关系运算符与两个表达式(可以是算术表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式等)组成。
一般形式为:<表达式> 关系运算符<表达式>
例如:
a>b、'a'+'b'< c、a>(b>c)、a== (b<c)等都是合法的关系表达式。
关系运算符中的“关系”的含义是指一个数据与另一个数据之间的关系,这种关系只有成立与不成立两种可能情况,C语言中用逻辑值表示,逻辑上的真与假使用数字“1”与“0”来表示。关系成立时,表达式的结果为真(1),否则表达式的结果为假(0)。 例如:
int a=2;float b=3.4; 计算a<b的结果。
由于关系运算符两侧的数据类型不统一,需要先将数据类型转换成同一个数据类型(实型),然后再进行比较。所以a(2.0)<b(3.4)的结果值为真(1)。
使用关系表达式要注意以下几点:
(1)C语言中,非0值即为真(1),0值即为假(0),如x=3,因为x等于非0值,则表达式x的逻辑值为真。
(2)运算符>= 、= =、!=、<=是两个字符构成的一个运算符,如果在两个字符中间插入空格则会产生语法错误。例如:a> =b;是错误的。
(3)浮点数进行==(相等)或!=(不相等)运算容易产生错误结果。
(4)将x==y写成x=y,C语言会将其作为赋值表达式处理,将y的值赋给x,并判断x的值是否为0,如果x为0则表达式为假,否则表达式为真,造成逻辑含义上的错误。