
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.4 关系运算符与关系表达式
在数学中经常比较两个数的大小。例如,小明的数学成绩是90分,小红的数学成绩是95分,小红的数学成绩比小明的数学成绩高,如图4.11所示。在比较成绩时,需要使用关系运算符。在C语言中,关系运算符主要用于判断两个运算数的大小关系。

图4.11 数学成绩比较
4.4.1 关系运算符

关系运算符包括大于运算符、大于或等于运算符、小于运算符、小于或等于运算符、等于运算符和不等于运算符。关系运算符的符号及功能如表4.2所示。
表4.2 关系运算符

4.4.2 关系表达式

关系运算符主要用于对两边表达式的值进行大小比较,返回一个真值(1)或假值(0),返回真值表示指定的关系成立,返回假值表示指定的关系不成立。例如:

关系表达式通常被用作控制程序流程的语句中的条件表达式。例如,在if语句的流程图中,如果关系表达式i==10返回的是真值,则执行下面的语句,否则不执行该语句,如图4.12所示。

图4.12 if语句的流程图
学习笔记
注意关系运算符“==”与赋值运算符“=”的区别。例如,i==3中的“==”是关系运算符,i=3中的“=”不是关系运算符,而是赋值运算符。
4.4.3 关系运算符的优先级与结合性

关系运算符的结合性都是自左向右的。关系运算符主要用于判断其两边的表达式的值的大小关系,但是由于关系运算符与其两边表达式中的运算符的优先级不同,因此容易导致错误。下面我们来看一个实例,先将变量NewNum的值赋给变量Number,再判断变量Number的值是否不等于常数10,错误的代码如下:

因为“!=”的优先级比“=”的优先级高,所以“NewNum!=10”的判断运算会在赋值运算之前进行,变量Number得到的就是关系表达式的真值或假值。括号运算符的优先级最高,因此可以使用括号将要优先计算的表达式括起来,修改后的代码如下:
