逻辑运算符与逻辑表达式

1、逻辑运算符

逻辑运算符一般用来对运算对象进行逻辑操作,逻辑运算符有以下三种:&&(逻辑与)、||(逻辑或)和!(逻辑非)。

1.2逻辑运算符的优先次序:!(逻辑非)大于 &&(逻辑与)大于 || (逻辑或)   换句话来说,!(非)最大,&&(与)次之,||(或)最小

1.3逻辑非“!”的优先级高于算术运算符,逻辑与“&&”和逻辑或“||”的优先级低于算术运算符和关系运算符,高于赋值运算符。因此在c>='a'&&c<='z'中,要先进行c>='a'和c<='z'的关系运算,再进行逻辑运算。

1.4逻辑运算符中逻辑非“!”的结合方向是由右向左,逻辑“&&”和逻辑或“||”的结合方向是由左向右。

2、逻辑表达式

逻辑表达式的一般形式为:

表达式  逻辑运算符  表达式

表达式运算结果有“真”和“假”两种,C语言中用 “1” 表示“真” ,用“0”表示“假”

                                                         逻辑运算的真假值表

ab!a!ba&&ba||b

咱具体举个例:int a=3,b=4;

!a:由于a非零,为真,!a为假,值为0。反之!b一样

a&&b:由于a和b 均非零,均为真,故逻辑与的结果为真,值为1。如果(b<a)则为假,值为0。

a||b:由于a和b均非零,均为真,故逻辑或的结果为真,值为1。

!a||b&&2:由于逻辑运算符的优先次序,所以先进行!a  b&&2 的关系运算,再与逻辑与运算。即:(!a)||(b&&2),即0||1为真,值为1。

敲代码试试:

#include"stdio.h"                  /*编译预处理命令*/
int main()                         /*main函数*/
{               
    int x=3,y=4;                   /*定义整型变量*/
    printf("x=%d,y=%d\n",x,y);     /*输出判断值*/
    printf("x<=5&&x>-5%d\n",x<=5&&x>=-5);
    printf("x<y||x+y==8%d\n,x<y||x+y==8");      /*输出判断值*/
}
    

3、逻辑表达式的短路现象

在C语言逻辑表达式中,有时会出现计算完&&或||左侧的表达式,就不用再计算右侧的表达式的情况,这种情况被称为逻辑表达式的短路现象。

#include"stdio.h"
void main()
{
     int a,b;
     x=254 ,y=345;
     if(x==14 &&(y+=1))
         printf("y进行运算后为%d\n",y);
     else
         printf("y进行运算后为%d\n",y);
}

在符合逻辑判断if(x==14 &&(y+=1))中,左边表达式为假(0),则右侧表达式&&(y+=1)则不再进行计算,整个表达式if语句必然为假。同理,若&&左边的表达式为真(1)则右侧表达式将不再计算。

  • 12
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值