首页 理论教育 C语言程序设计:逻辑运算符与表达式

C语言程序设计:逻辑运算符与表达式

时间:2023-10-20 理论教育 版权反馈
【摘要】:关系运算符只能表示简单的大小关系,当要表示多个复杂条件时,需要用到逻辑运算符。用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。表3.5C语言的逻辑运算符注:当操作数为非零时,为真;操作数为零时,为假。在程序中表达式中包含关系运算符>=、<=和逻辑运算符&&。C语言的逻辑运算符的特点。"短路"功能可以减少计算量,当运算符左边的值能判断整个逻辑表达式的结果时,则不再计算右边的表达式。

C语言程序设计:逻辑运算符与表达式

关系运算符只能表示简单的大小关系,当要表示多个复杂条件时,需要用到逻辑运算符。如"表示a 大于3 并且a 小于等于5""表示一个数能否被5 或者7 整除"。

在C语言中有三种逻辑运算符:&&(逻辑与)、‖(逻辑或)、!(逻辑非)。&&表示多个条件都要满足,‖表示多个条件只要满足其中一部分,!表示相反的条件。

用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式的值和关系表达式的值一样为逻辑值,即"真"和"假"。同样用数值1表示"真",用数值0表示"假"。C语言的逻辑运算符如表3.5 所示。

表3.5 C语言的逻辑运算符

注:当操作数为非零时,为真;操作数为零时,为假。

【例3.5】 计算C语言的逻辑表达式。

运行结果:

程序讲解:

在计算逻辑表达式时,同样要注意运算符的优先级问题。&&(逻辑与)、‖(逻辑或)、!(逻辑非)的优先级不同。!的优先级高于&&、‖;!的优先级高于算术运算符;关系运算符的优先级高于&&、‖。

在程序中表达式(a>=1&&a<=5)中包含关系运算符>=、<=和逻辑运算符&&。按照优先级的高低,先计算关系表达式a>=1 和a<=5 的值分别为1(真)和1(真),再计算逻辑表达式1&&1 的结果为1。(www.xing528.com)

在第二个表达式(b=5)||a<3 中,先计算表达式b=5 的值为非零为1(真),计算a<3 的值为0(假),整个表达式的值为1。

思考一下,如果把表达式中的括号去掉,表达式的值是多少?变量b 的值是多少?

在第三个表达式!a==3&&b!=1 中,运算符的优先级从高到低为!、==、!=、&&。先计算!a的值为0,再计算0==3 的值为0,接着计算b!=1 的值为1(真),最后0&&1 的结果为0。

【例3.6】C语言的逻辑运算符的特点。

运行结果:

程序讲解:

C语言规定,在进行&&运算时,如果运算符左边的值为0(假),则不需要计算右边的表达式,整个表达式的值为0。如计算m=a>b&&(c=4)时,&&左边的表达式a>b 的值为0,则不需要计算c=4,整个表达式的值为0。

在进行‖运算时,如果运算符左边的值为1(真),则不需要计算右边的表达式,整个表达式的值为1。如计算n=a<b‖(d=5)时,‖左边的表达式a<b的值为1,则不需要计算d=5,整个表达式的值为1。

注意:&&和||运算符具有"短路"功能。"短路"功能可以减少计算量,当运算符左边的值能判断整个逻辑表达式的结果时,则不再计算右边的表达式。

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

我要反馈