![零基础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=1739552932-BfZ5bLuPwnHvOHVRkPlXzqWm5nB9cruV-0-1f39ae4db8f2f45e9e03ae400a6968bd)
图4.11 数学成绩比较
4.4.1 关系运算符
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_33.jpg?sign=1739552932-2I97CBzAvpFxe0fjqvDHASGUWrIohasL-0-18218a73b1344b5705b261f278055116)
关系运算符包括大于运算符、大于或等于运算符、小于运算符、小于或等于运算符、等于运算符和不等于运算符。关系运算符的符号及功能如表4.2所示。
表4.2 关系运算符
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_34.jpg?sign=1739552932-1O7zq9qtxjQgbgkp7QGNbWCvKNLa0nuo-0-812f388c230763bef0ba1873cab0953c)
4.4.2 关系表达式
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_35.jpg?sign=1739552932-fq0I93iGEF1wnPRGLaOABo8GSasgDRSI-0-6046289b5884de118e99aa0afb220589)
关系运算符主要用于对两边表达式的值进行大小比较,返回一个真值(1)或假值(0),返回真值表示指定的关系成立,返回假值表示指定的关系不成立。例如:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_36.jpg?sign=1739552932-ieXsiL8mPqLWc3aB5Wdwl8oUOYEtV3Fw-0-532fa9dacc9026eb86ee41299b08a391)
关系表达式通常被用作控制程序流程的语句中的条件表达式。例如,在if语句的流程图中,如果关系表达式i==10返回的是真值,则执行下面的语句,否则不执行该语句,如图4.12所示。
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_37.jpg?sign=1739552932-j8S7cdDfAdTc912ctNbMch7GZZDvKmXC-0-be452d2f65f25d246d1362191063292f)
图4.12 if语句的流程图
学习笔记
注意关系运算符“==”与赋值运算符“=”的区别。例如,i==3中的“==”是关系运算符,i=3中的“=”不是关系运算符,而是赋值运算符。
4.4.3 关系运算符的优先级与结合性
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_38.jpg?sign=1739552932-kCp1NRbCauaRePIloK25zfs618DiCFJ8-0-c79f439338378175a7656278bb1082fa)
关系运算符的结合性都是自左向右的。关系运算符主要用于判断其两边的表达式的值的大小关系,但是由于关系运算符与其两边表达式中的运算符的优先级不同,因此容易导致错误。下面我们来看一个实例,先将变量NewNum的值赋给变量Number,再判断变量Number的值是否不等于常数10,错误的代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_39.jpg?sign=1739552932-gQ0QR8fIHpd3rAyaLkruKP5sBd12xomC-0-60b2852f400209d68279a8d72bde4cb5)
因为“!=”的优先级比“=”的优先级高,所以“NewNum!=10”的判断运算会在赋值运算之前进行,变量Number得到的就是关系表达式的真值或假值。括号运算符的优先级最高,因此可以使用括号将要优先计算的表达式括起来,修改后的代码如下:
![img](https://epubservercos.yuewen.com/9B6764/19471983208811106/epubprivate/OEBPS/Images/txt005_40.jpg?sign=1739552932-Fd261CmzWn7ZiEPY8hg3EXsqXTZ12mh0-0-bb2e33ba21d65f523cb8cbb93dce7cca)