捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >知识点备忘 > 正文
15 2018.02

S1E10:关系运算符和逻辑运算符

点击次数:1188 更新时间:2018/2/15 15:22:20  【打印此页

知识点回顾:

1. 关系运算符

在 C 语言中,使用关系运算符来比较两个数的大小关系。

 



关系运算符都是双目运算符,其结合性均为左到右。另外,关系运算符的优先级低于算术运算符,高于赋值运算符。


2. 关系表达式

用关系运算符将两边的变量、数据或表达式连接起来,称之为关系表达式:

 

·         1 < 2

·         a > b

·         a <= 1 + b

·         'a' + 'b' <= 'c'

·         (a = 3) > (b = 5)


关系表达式得到的值是一个逻辑值,即判断结果为“真”或“假”,如果结果为“真”,关系表达式的值为 1,如果为“假”,关系表达式的值则为 0。


3. 逻辑运算符

C 语言总共提供了三种逻辑运算符:

 


4. 逻辑表达式

用逻辑运算符将两边的变量、数据或表达式连接起来,称之为逻辑表达式:

 

·         3 > 1 && 1 < 2

·         3 + 1 || 2 == 0

·         !(a + b)

·         !0 + 1 < 1 || !(3 + 4)

·         'a' - 'b' && 'c'


注:关系表达式和逻辑表达式得到的值都是一个逻辑值,也就是表示真的 1 和表示假的 0。但是用于判断一个值是否为真时,以 0 表示假,以任何非 0 的数表示真。一个是编译系统告诉我们的结果,一个是我们让编译系统去判断的,两者方向不同。


5. 短路求值

短路求值又称最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。

C 语言对于逻辑与和逻辑或采用短路求值的方式。

#include  <stdio.h>

int main()
{
        int a = 3, b = 3;

        (a = 0) && (b = 5);
        printf("a = %d, b = %d\n", a, b);

        (a = 1) || (b = 5);
        printf("a = %d, b = %d\n", a, b);

        return 0;
}


 


6. 彩蛋
下文摘自《C专家编程》


1993 年春天,在 SunSoft 的操作系统开发小组里,我们接到了一个“一级优先”的 Bug 报告,是一个关于异步 I/O 库的问题。如果这个 Bug 不解决,将会使一桩价值 2000 万美元的硬件产品生意告吹,因为对方需要使用这个库的功能。所以,我们顶着重压寻找这个 Bug。经过几次紧张的调试,问题被圈定在下面这条语句上:

x == 2;

这是个打字错误,它的原意是一条赋值语句。程序员的手指放在“=”键上,不小心多按了一下。这条语句成了将 x 与 2 进行比较,比较结果是 true 或者 false,然后丢弃这个比较结果。

C 语言的表达能力也实在是强,编译器对于“求一个表达式的值,但不使用该值”这样的语句竟然也能接受,并且不发出任何警告,只是简单地把返回结果丢弃。我们不知道是应该为及时找到这个问题的好运气而庆幸,还是应该为这样一个常见的打字错误可能付出高昂的代价而痛心疾首。有些版本的长整数程序已经能够检测到这类问题,但人们很容易忽视这些有用的工具。

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1188 更新时间:2018/2/15 15:22:20  【打印此页

上一条:S1E9:算术运算符

下一条:S1E11:if语句

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修