理论教育 C语言程序设计:关系运算与逻辑运算

C语言程序设计:关系运算与逻辑运算

时间:2023-10-20 理论教育 版权反馈
【摘要】:关系表达式关系表达式就是用关系运算符将变量、常量、表达式连接起来的式子。由于C语言没有逻辑型数据,所以,关系运算的返回结果若为真,则用1表示;返回结果若为假,则用0表示。表2-8逻辑运算的真值表提示:①!高于算术运算符。

C语言程序设计:关系运算与逻辑运算

1.关系运算

(1)关系运算符

所谓“关系运算”,实际上就是“比较运算”。将两个数值进行比较,判断它们是否符合给定的条件。C语言提供了6种用于比较的关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、!=(不等于)。

提示:

①关系运算符的优先级低于算术运算符,高于赋值运算符;

②关系运算的结合性也是“左结合性”;

③C语言中的等于关系用==表示,而不是=(赋值运算符)。赋值运算是将右侧的值赋给左部变量,赋值运算符没有比较的意义。

(2)关系表达式

关系表达式就是用关系运算符将变量、常量、表达式连接起来的式子。关系表达式的值是一个逻辑值,若关系表达式成立,则值为“真”,否则为“假”。由于C语言没有逻辑型数据,所以,关系运算的返回结果若为真,则用1表示;返回结果若为假,则用0表示。

思考分析下面表达式的值:

1)若a=3,b=2,c=1,则下列表达式的值分别为多少?

①(a>b)==c

②b+c<a

③f=a<b>c

2)表达式(a=3)>(b=5)的值是多少?

3)表达式'c'!='C'的值是多少?

2.逻辑运算

(1)逻辑运算符

逻辑运算表示两个数据或表达式之间的逻辑关系。C语言提供的逻辑运算符有3个,它们分别是:&&(逻辑与)、||(逻辑或)、!(逻辑非)。

逻辑运算的结果也只有真和假,即1和0。对于&&,若其左、右两个操作数均为非零(真),则返回值才为非零(真),否则返回值(假)。对于||,只要它左、右两边的操作数有一个为非零(真),则返回值就为非零(真),否则返回零。对于!,它把非零操作数转换为零,而把零操作数转换为非零(系统实现时往往为1)。逻辑运算的运用情况见表2-8。

表2-8 逻辑运算的真值表(www.daowen.com)

提示:

①!是单目运算符(只有一个运算量),一般形式为:!表达式。

②逻辑运算符!的结合性为“从右向左”,&&和||的结合性仍是“从左往右”。

(2)逻辑表达式

逻辑表达式的值应该是一个真值或假值的逻辑量,C语言编译系统在判断一个量是否为“真”时,主要是看该量是否为非零值,若为非零值,则认为其为“真”,用1表示;若该量为零值,则认为其为“假”,用0表示。

提示:

①&&和||的优先级低于关系运算符,!高于算术运算符。

②逻辑表达式中的逻辑量若不是0,则认为该量为真。

思考:若a=5,b=3,试分析下面表达式的逻辑值是多少?

5>3 && 2||7<4-!0

分析:根据优先级,该表达式的执行先后顺序大致如下:

第1步  5>3 && 2 ||7<4-!0

第2步:   1 && 2 ||7<4-!0

第3步:     1  ||7<4-!0

第4步:      1

a||b,如果a表达式值为真,结果就是真。就不需要判断b表达式的值。因此上面表达式中的7<4-!0,没有参与运算。

上面表达式最后的结果是:1

短路特性:在C语言中,&&和||是短路运算符号,在进行逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。

即在一个或多个由&&相连的表达式中,只要有一个操作数为零,就不做后面的&&运算,整个表达式的结果为零。而在由一个或多个||连接而成的表达式中,只要碰到第1个不为零的操作数,就不必再进行后续运算,整个表达式的值就不为零。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈