![零基础C语言学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/191/36710191/b_36710191.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.4 关系运算符与关系表达式
在数学中经常比较两个数的大小。例如,小明的数学成绩是90分,小红的数学成绩是95分,小红的数学成绩比小明的数学成绩高,如图4.11所示。在比较成绩时,需要使用关系运算符。在C语言中,关系运算符主要用于判断两个运算数的大小关系。
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_32.jpg?sign=1739481416-LA9MuCbG9eMraWwFE4asqECj549J8c61-0-0e660647e0f9f6d5b718ebeb632c04f4)
图4.11 数学成绩比较
4.4.1 关系运算符
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_33.jpg?sign=1739481416-MzEgbUud9YU1RrVC95xPNnAJhl9w44DH-0-4e166213506a7d9a4df8191606f1d7f0)
关系运算符包括大于运算符、大于或等于运算符、小于运算符、小于或等于运算符、等于运算符和不等于运算符。关系运算符的符号及功能如表4.2所示。
表4.2 关系运算符
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_34.jpg?sign=1739481416-aXPKxllPe3pZpIRTJPJhkNR1rfaqdgep-0-ca4c832b2bda1746a91c10cb6bde62da)
4.4.2 关系表达式
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_35.jpg?sign=1739481416-19IqfmX2Fzckezs5T8nJJQFtxcF6Y7uI-0-a4fd919a649aef455a53f4b26df90adb)
关系运算符主要用于对两边表达式的值进行大小比较,返回一个真值(1)或假值(0),返回真值表示指定的关系成立,返回假值表示指定的关系不成立。例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_36.jpg?sign=1739481416-qwTwLuzda6fkAVu41itdV1G8RBcXojhx-0-112d4fd6aba3e7cc784c4c4532a2801f)
关系表达式通常被用作控制程序流程的语句中的条件表达式。例如,在if语句的流程图中,如果关系表达式i==10返回的是真值,则执行下面的语句,否则不执行该语句,如图4.12所示。
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_37.jpg?sign=1739481416-xJ3toMrEEbQDapYZHtL1uKAhHWxZ3Dcq-0-05f53f1ee982e84e8287ee97925dcc51)
图4.12 if语句的流程图
学习笔记
注意关系运算符“==”与赋值运算符“=”的区别。例如,i==3中的“==”是关系运算符,i=3中的“=”不是关系运算符,而是赋值运算符。
4.4.3 关系运算符的优先级与结合性
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_38.jpg?sign=1739481416-iAgq8z7H5V7ssB8uQPUX9KY6qZSnWIgU-0-19fd804f1d55223672a8c87cc33d1c17)
关系运算符的结合性都是自左向右的。关系运算符主要用于判断其两边的表达式的值的大小关系,但是由于关系运算符与其两边表达式中的运算符的优先级不同,因此容易导致错误。下面我们来看一个实例,先将变量NewNum的值赋给变量Number,再判断变量Number的值是否不等于常数10,错误的代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_39.jpg?sign=1739481416-0bjXDSgUdSTOLqvgqK80oDKIL4kHXOfC-0-5c2b28da100db559dc3cfe0f1a2999c9)
因为“!=”的优先级比“=”的优先级高,所以“NewNum!=10”的判断运算会在赋值运算之前进行,变量Number得到的就是关系表达式的真值或假值。括号运算符的优先级最高,因此可以使用括号将要优先计算的表达式括起来,修改后的代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_40.jpg?sign=1739481416-0aKT7wGN2ryRt5ZBjwSadH9nFg3RSoU0-0-120bcab3e44c3024c5dbf938576d3beb)