2.1.5运算符

1.算术运算符

        +加法运算符

        -减法运算符

        *乘法运算符

        /除法运算符

        %取模运算符

        ++自增运算符

        --自减运算符

对于除法运算符,需要注意的是,当被除数跟出书都是整型时,并不会得到一个double浮点型的数,而是直接舍去小数部分。举例如下:

#include<stdio.h>
int main(){
    int a = 5, b = 4, c = 5, d = 6;
    printf("%d %d %d\n",a/b,a/c,a/d);
    return 0;
}

可以看到,5/4直接舍掉小数部分变成了1,而5/6直接变成了0

补充:除数如果是0,会导致程序异常退出或是得到错误输出“1.#INF00”,因此在出现问题时请检查是否在某种情况下除数为零。

加减乘除四种运算符的优先级顺序和四则运算的优先级相同

取模运算符返回被除数与除数相除得到的余数,举例如下:

#include<stdio.h>
int main(){
    int a = 5, b = 3, c = 5;
    printf("%d %d\n",a%b,a%c);
    return 0;
}

输出结果:2  0

与除法运算符一样,除数不允许为0,因此当出问题的时候应先考虑除数是否有可能为零

取模运算符的优先级和除法运算符相同

再来讨论自增运算符

自增运算符有两种写法:i++或++i 这两个都可以实现把i增加1的功能

他们的区别在于i++是先使用i再将i加1,而++i则是先将i加1再使用i

来看下例子:

#include<stdio.h>
int main(){
    int a = 1,b = 1,n1,n2;
    n1 = a++;
    n2 = ++b;
    printf("%d %d\n",n1,a);
    printf("%d %d\n",n2,b);
    return 0;
}

输出结果:  1  2

                    2  2

首先看n1 = a++:这里n1先获得a的值,再将a加1,因此n1和a分别为1和2;

接着n2=++b:先将b加1,n2再获得b的值,因此n2和b分别为2和2

2.关系运算符

常用的关系运算符共有六种:<,  >,  <=,  >=,  ==,  !=(表达式成立时返回1true,不成立时返回0false)

3.逻辑运算符

常用的逻辑运算符有三种:&&,ll,!,分别对应“与”,“或”,“非”

a&&b:ab都真,则返回真,其他情况都返回佳

a ll b:    ab都假,则返回假,其他情况都返回真

!a:如果a为真,则返回假;a为假,则返回真

4.条件运算符

条件运算符(?:)是C语言中唯一的三目运算符,即需要三个参数的运算符,格式如下:

A ? B : C;

其含义是:如果A为真,那么执行并返回B的结果;如果A为假,则执行并返回C的结果

例子如下:

#include<stdio.h>
int main(){
    int a = 3,b = 5;
    int c = a > b ? 7 : 11;
    printf("%d\n",c);
    return 0;
}

输出结果:11

在上述代码中,由于a>5不成立,所以返回冒号后面的11,并将11赋值给c

5.位运算符

格式:

const int INF = (1<<30)-1;

位运算符有六种:

运算符含义语法效果
<<左移a<<x整数a按二进制左移x位
>>右移a>>x整数a按二进制右移x位
&位与a&b整数a和b按二进制对齐,按位进行与运算(除了11得1,其余为0)
l位或a l b整数a和b按二进制对齐,按位进行或运算(除了00得0,其余为1)
^位异或a ^ b

整数a和b按二进制对齐,按位进行异或运算(相同位0,不同为1)

~位取反~a整数a的二进制的每一位进行0变1,1变0的操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChenLifan_001

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值