第121页 | C Primer Plus 中文版 | 阅读 ‧ 电子书库

同步阅读进度,多语言翻译,过滤屏幕蓝光,评论分享,更多完整功能,更好读书体验,试试 阅读 ‧ 电子书库

 总结:逻辑运算符和表达式逻辑运算符:逻辑运算符通常使用关系表达式作为操作数。!运算符带一个操作数。其他两个逻辑运算符带有两个操作数:一个在左边,一个在右边。运算符 意义&&   与II    或!   非逻辑表达式:当且仅当两个表达式都为真时,expressionl&&expression2为真。如果其中一个为真或两个表达式都为真,expression1||expression2为真。如果expression为假,则!expression为真,反之亦然。求值顺序:逻辑表达式是从左到右求值的。一旦发现有使表达式为假的因素,立即停止求值。例如:7.3.4 范围

可以把&&运算符用于测试范围。例如,若要检查90到100范围内的得分,可以这样做:

一定要注意避免效法像下面这样的数学上常用的写法:

问题在于该代码是个语义错误,而不是语法错误,所以编译器并不会捕获它(尽管可能会发出警告)。因为对<=运算符的求值顺序是由左到右的,所以会把该测试表达式解释为如下形式:

子表达式90<=range的值为1(真)或0(假)。任何一个值都小于100,因此不管range的值是什么,整个表达式总为真,所以需要使用&&来检查范围。

大量现有代码利用范围测试来检测一个字符是不是(比方说)小写字母。例如,假设ch是个char变量:

这对于像ASCII那样的字符编码可以工作,因为在这种编码中连续字母的编码是相邻的数值。然而,对于包括EBCDIC在内的一些编码就不正确了。进行这种测试的移植性更好的方法是使用ctype.h系列(请参见表7.1)中的islower()函数:

不管使用哪种特定的字符编码,islower()函数都能很好地运行(不过,一些早期的实现没有ctype.h系列的头文件)。

请支持我们,让我们可以支付服务器费用。
使用微信支付打赏


上一页 · 目录下一页


下载 · 书页 · 阅读 ‧ 电子书库