运算符(关系运算和逻辑运算的介绍)(其一)

一、运算符的优先级和结合性(简单介绍)

  1.     优先级   

    1.     顾名思义 :这就像我们数学的运算规则一样,优先级越高,越先计算。

    2. 例如:a  +b*c会被解释为      a+(b*c),而不是    (a+b)*c  
  2.       结合性

    假如用o表示需要两个操作数(操作数就相当于运算数)的双目操作符,那么对于a o b o c,对于左结合的运算符来说会解释为:       (a o b)o c    左结合性

         对于右结合的运算符来说会被解释为:   a o (b o c)    右结合性

也就是说遇到优先级相同的运算符,结合性指明了表达式应从左到右运算还是从左到右运算

另外我们应该注意赋值运算符  =   ,是右结合性的。                                                                         所以解释为:a=b=1   ——>a=(b=1)   

 前面的都是简单的介绍,接下来我们进入正题

二、关系运算及其表达式

所谓关系运算,就是对于两个数据的大小关系的一种断言,因此他的结果是一个逻辑值。

那么什么是逻辑值呢?简单来说就是真和假。 

例如a=1,b=2;   那么a>b的结果就是假                                                     C语言当中,我们用0表示假,用非零表示真

关系运算符是实现关系运算的运算符,在c语言中有六种关系运算符

分别是==(等于)

        !=(不等于)

         <(小于)

        <=(小于等于)

        >(大于)

        >=(大于等于)

注意>=之间没有空格,其他的5种符号也是同理

  关系表达式:用关系运算符将运算量连接起来的表达式称为是关系表达式

eg :a%2=0;           a%2!=0;

表达式的结果是一个逻辑值 即(真)或(假)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a, b, c;
	a = 3;
	b = 2;
	c = 1;
	printf("%d\n", a > b);
	printf("%d\n", a % 2 == 0);
	printf("%d\n", c != c < a);
	printf("%d\n", a > b > c);
	return 0;

我们可以看到结果是1 0 0 0。

接下来我们一起来分析一下程序

  1. a>b是对的,程序用1表示真
  2. a%2的结果是1并不等于0,所以 错误,用0表示假
  3. c!=c<a       !=的优先级小于<   所以先算c<a,很明显是真,我们用表示,然后就是计算c!=1,因此结果是假,用0表示
  4. a>b>c     优先级相同,根据左结合性 先计算a>b,结果是真,用1表示,然后就是计算1>c,很显然不对,用0表示

 三、逻辑运算及其表达式

千万要注意关系运算符的优先级比逻辑运算符的优先级高

条件表达式只能表示单一的条件,若要表示复杂的条件,那么需要用到逻辑运算表达式

eg:在C语言中想要表示x>0并且x<10不能表示为0<x<10,应该表示为x>0&&x<10(这是逻辑表达式,接下来了解)

C语言中有三种逻辑运算符:

1、&&逻辑与    只有a、b都为真     a&&b才为真

2、||逻辑或    a   b中至少一个为真   a||b就为真

3、!逻辑非    若a为真,那么!a为假

很显然       逻辑运算表达式的结果仍然是逻辑值

注意      逻辑非的优先级最高,逻辑与次之,逻辑或最低

例如   a>b||c>d&&x>y等价于(a>b)||【(c>d)&&(x>y)】

逻辑运算的‘短路’

 

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值