5 算数运算符和关系运算符

1 运算符分类

C语言提供了13种类型的运算符,如下所示。

(1)算术运算符(+ - * / %)

(2)关系运算符(> < == >= <= !=)

(3)逻辑运算符(&& ||)

(4)位运算符(<< >> ~ | ^ &)

(5)赋值运算符(=及其扩展赋值运算符)

(6)条件运算符(?:)

(7)逗号运算符(,)

(8)指针运算符(* &)—— 指针

(9)求字节数运算符(sizeof)

(10)强制类型转换运算符((类型))

(11)分量运算符(.->) —— 结构体

(12)下标运算符([])—— 数组

(13)其他(如函数调用运算符())—— 函数

2 算术运算符及算术表达式

当一个表达式中同时出现这5种运算符时,先进行乘,除,取余,取余也称取模,后进行加,减。

除%运算符外,其余几种运算符既适用于浮点型数又适用于整型数。当操作符/的两个操作数都是整型数时,它执行整除运算,在其他情况下执行浮点型数除法。%为取模运算符,它接收两个整型操作数,将左操作数除以右操作数,但它的返回值是余数而不是商。由算术运算符组成的式子称为算术表达式,表达式一定有一个值。

#include <stdio.h>
int main()
{
  int result=4+5*2-6/3+10%4;
  printf("result=%d\n",result);
    return 0;
}

3 关系运算符与关系表达式

关系表达式的值只有真和假,对应的值为1和0。由于C语言中没有布尔类型,所以在C语言中0值代表假,非0值即为真。例如,关系表达式3>4为假,因此整体值为0,而关系表达式5>2为真,因此整体值为1。关系运算符的优先低于算术运算符

当判断整型变量i是否等于3时,我们可以写为3==i,即把常量写在前面而把变量写在后面。这是因为当不小心将两个

等号写为一个等号时,变量在前面就会导致编译不通,从而快速发现错误(这种写法属于华为公

司内部的一条编程规范)。

需要判断三个数是否相等,绝对不可以写为if(5==5==5),这种写法的值无论何时都为假,因为首先5==5得到的结果为1,然后1==5得到的结果为0。如果要判断三个变量a、b、c是否相等,那么不能写为a==b==c,而应写为a==b&&b==c。

【例】关系运算符的使用

#include <stdio.h>
//不能用数学上的连续判断大小来判断某个数
int main()
{
    int a;
    while(scanf("%d",&a))
    {
        if(3<a<10){
            printf("a在3和10之间\n");
        }else{
            printf("a不在3和10之间\n");
        }
    }
    return 0;
}

如果要判断变量a是否大于3且同时小于10,那么不能写为3<a<10,这种写法在数学上的确是正确的,但是在程序中是错误的。首先,无论a是大于3还是小于3,对于3<a这个表达式只有1或0两种结果。由于1和0都是小于10的,所以无论a的值为多少,这个表达式的值始终为真,因此在判断变量a是否大于3且同时小于10时,要写成a>3&&a<10,这才是正确的写

法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值