C语言 关系运算符与关系表达式

知识补丁01:关系运算符及其优先次序

少侠,接招吧!
[接招看题025-01] 说明关系运算符的优先级低于算术运算符,但高于赋值运算符。并比较关系运算符的优先级。
在这里插入图片描述
帮你节约时间的源代码:

main()
{
    int result=0;
    result=0!=1>0;
    printf("0!=1>0 is equal:%d\n",result);
    result=0<(1>=0);
    printf("0<(1>=0) is equal:%d\n",result);
    result=4+8/4==7-1;
    printf("4+8/4==7-1 is equal:%d\n",result);
}

知识补丁,内功心法:

1. C语言提供6种关系运算符:
<(小于),
<=(小于或等于),
>(大于), 
>=(大于或等于),     **前4个优先级相同**且前4个高于后2个
==(等于),          **后2个优先级也相同**
!=(不等于)
注意:在C语言中,"等于"关系运算符是双等号"= =",而不是单等号"= "(赋值运算符)。
2.优先级
   (1)在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。
   (2)与其它种类运算符的优先级关系:
   算术运算符的优先级> 关系运算符的优先级>赋值运算符的优先级。

知识补丁02:关系表达式

下面的关系表达式都是合法的:

  a>b,a+b>c-d,(a=3)<=(b=5),**'a'>='b',(a>b)= =(b>c)**

关系表达式的值–逻辑值(非"真"即"假")。逻辑值也叫布尔值。
由于C语言没有逻辑型数据,所以用整数"1"表示"逻辑真",用整数"0"表示"逻辑假"。
例如,假设num1=3,num2=4,num3=5,则:
(1)num1>num2的逻辑关系判断,逻辑关系为假,用值=0来表示。
(2)(num1>num2)!=num3的逻辑关系判断,逻辑关系为真,用值=1来表示。
(3)num1<num2<num3的值=1。
思考题:任意改变num1或num2的值,会影响整个表达式的值吗?为什么?演示如下:
接招看题025-02:没改变的结果如下:
在这里插入图片描述

改变之后的结果如下:
在这里插入图片描述
总结程序:之所以会出现0,1的差异,实质上是逻辑关系真假的差异。抓住逻辑关系。
(4)(num1<num2)+num3的值=6,因为num1<num2的值=1,1+5=6。
再次强调:C语言用整数"1"表示"逻辑真",用整数"0"表示"逻辑假"。所以,关系表达式的值,还可以参与其它种类的运算,例如算术运算、逻辑运算等。

[接招看题025-03]说明关系表达式的值关系
在这里插入图片描述
帮你节约时间的源代码:

main()
{
    int result=0;
    int num1=3,num2=4,num3=5;
    result=num1>num2;
    printf("num1>num2 is equal:%d\n",result);
    result=(num1>num2)!=num3;
    printf("(num1>num2)!=num3 is equal:%d\n",result);
    result=num1<num2<num3;
    printf("num1<num2<num3 is equal:%d\n",result);
    result=(num1<num2)+num3;
    printf("(num1<num2)+num3 is equal:%d\n",result);
} 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码写注释

请赞赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值