关系运算可以理解为比较运算,将两个数值进行比较,判断比较的结果是否满足给定的条件。例如,例4.1 中的“x >= 0”就是一个关系表达式,“>=”是一个关系运算符。如果x的值为6,则满足给定的“x >=0”条件,关系表达式的值为“ture”即“真”;如果x的值为-10,则不满足给定的“x >= 0”条件,关系表达式的值为“false”即“假”。
1.关系运算符及其优先次序
C语言提供了6种关系运算符,如表4-1所示。
注意:
(1)在书写关系运算符<=、>=、==、!=时,中间不允许有空格,否则会产生语法错误。
(2)在C语言中,“等号”(=)用来赋值,而“双等号”(==)用来检查两个值是否相等。例如,number = 5表示把5赋值给number,而number == 5,则是判断number的值是否等于5。
表4-1 关系运算符
关系运算符是双目运算符,具有自左至右的结合性。以上关系运算符中,前4种关系运算符优先级别相同,后两种相同,且前4种高于后两种。关系运算符的优先级低于算术运算符、高于赋值运算符,如图4-2所示。
图4-2 优先级关系图
例如:
(1)a>b+c等价于a>(b+c)
(2)a==b<c等价于a==(b <c)
(3)a =b <c等价于a=(b<c)
2.关系表达式(www.daowen.com)
由关系运算符连接而成的表达式称为关系表达式。关系运算符两边的运算对象可以是C语言中任意合法的表达式。关系表达式的一般形式为:
例如,a>b, (a=2) > (b=3),a>b==c, 'a' >'b',a+b>c+d等都是合法的关系表达式。
关系表达式的值为逻辑值,即“真”或“假”。当比较符合事实时,结果就是“真”,用“1”表示;当比较不符合事实时,结果就是“假”,用“0”表示。
例如,设“int a=2,b=3,c=1,d;”,计算以下关系表达式的值。
(1)a>b
2>3为“假”,所以表达式的值为0。
(2)a+b>b+c
5>4为“真”,所以表达式的值为1 。
(3) 'a' > 'b'
'a'的ASSII码值为97, 'b'的ASCII码值为98,因此'a' >'b'为“假”,所以表达式的值为0。
(4)d=a>b>c
d的值为0,因为“>”运算符的结合方向是自左向右。先执行“a>b”,得到值为0;再执行“0>c”,得到值为0,赋给d,所以d的值为0。
注:字符参与关系运算时,使用字符的ASCII码值进行比较。两个字符串进行关系运算时,从两个字符串左边开始,逐个字符比较,如果前面的字符相同,就比较下一个字符,一旦某个字符不同,按其ASCII码值的大小决定两个字符串的大小。如果所有字符都相同,则两个字符串相等。例如,关系表达式"abc" < " abe"的值为1,因为从左开始比较,第3个字符不同,且'c'的ASCII码值小于'e'的ASCII码值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。