美文网首页
4.运算符与表达式

4.运算符与表达式

作者: luowenbin | 来源:发表于2018-09-22 23:46 被阅读68次

    变量 与 变量或常量 可以进行运算 组成表达式。

    一、算术运算符

    运算符 含义
    +
    -
    *
    /
    % 取余
    ++ 自增
    -- 自减

    1.基本算术运算

    前5个基本含义和数学上相同
    不同的是:
    整型除以整型结果还是整型,小数部分直接去掉
    5/2的结果是2,不是2.5,也不是3
    想要得到小数部分就要用 浮点型
    5.0/2.0 的结果才是2.5

    #include <stdio.h>
    int main() {
        int a = 100;
        int b = 6;
        printf("a + b == %d\n", a+b );
        printf("a - b == %d\n", a-b );
        printf("a * b == %d\n", a*b );
        printf("a / b == %d\n", a/b );
        printf("a %% b == %d\n", a%b );//输出%要用%%
        return 0;
    }
    

    2.自增自减运算

    自增与自减同理,所以这里只说自增。

    变量的自增运算就是变量本身+1
    单独使用时这4条语句是一样的:
    ++a;a++;a=a+1;a+=1;(a为变量)
    混和其他运算符一起使用时有区别:
    前置:++a 先自增再运算
    后置:a++先运算再自增
    例如:
    c=++a;等价于a++; c=a; //自增;赋值;
    c=a++;等价于c=a; a++; //赋值;自增;

    #include <stdio.h>
    
    int main() {
        int a = 100;
        int b = 6;
        int c=0;
    
        printf("自增自减(单独作为语句使用)\n");
        printf("a == %d  b == %d\n", a,b );
    
        a++;
        b--;
        printf("a == %d  b == %d\n", a,b );
    
        printf("\n\n");
    
        printf("自增自减(嵌套使用)\n");
        printf("a == %d\n", a );
        c=a++;//先赋值a的值给c,a再自增,所以c的是自增前的a
        printf("c == %d,a==%d\n", c,a);
        c=++a;//a先自增,再赋值a的值给c,所以c的是自增后的a
        printf("c == %d,a==%d\n", c,a);
    
        return 0;
    }
    

    二、赋值运算符

    运算符 含义 举例
    = 赋值 i=5;表示 设置变量i的值为5
    += 相加后赋值 i+=5;等同于i=i+5
    -= 相减后赋值 i-=5;等同于i=i-5
    *= 相乘后赋值 i*=5;等同于i=i*5
    /= 相除后赋值 i/=5;等同于i=i/5
    %= 取余后赋值 i%=5;等同于i=i%5

    三、关系运算符

    关系运算符的运算结果只有两种 1(代表真)和 0(代表假)

    运算符 含义 举例
    == 是否相等 5==5的结果为1
    != 是否不等 5!=5的结果为0
    > 是否大于 6>5的结果为1
    < 是否小于 6<5的结果为0
    >= 是否大于或等于 4>=5的结果为0
    <= 是否小于或等于 4<=5的结果为1

    注意区分===,分别是 赋值 和 比较是否相等。

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

    四、逻辑运算符

    运算符 含义 举例
    | | :有一个为真,运算结果就为真 1||0的值为1
    && :同时为真,运算结果才为真 1&&0的值为0
    ! :真变成假,假变成真 !0的值为1
    #include<stdio.h>
    int main() {
        /* 或且非 随便挑一个意思理解
         和数学上集合的 并集,交集,补集 差不多。
         和物理上: “或” 像 开关并联,“且” 像开关串联,也差不多。
        */
        int a=0,b=999,c;
        //判断b是否大于5 或者 a<10 有一个满足 结果就是1 , 一个都不满足 结果就是0
        printf("%d\n",a>5||a<10);//1
    
        //判断b是否在0到100
        printf("%d\n",b>0&&b<1000);//1
    
        //判断b是否为0,1,2
        printf("%d\n",b==0||b==1||b==2);//0
    
        return 0;
    }
    
    

    六、位运算符

    数值在计算机中是以二进制存储的。
    如 42对应二进制为00101010,其中的每一个1或0 叫做一个

    运算符 含义 示例
    << 左移位:将数字的二进制每一个位左移 00101010<<1的值为01010100
    >> 右移位:将数字的二进制每一个位右移 00101010<<1的值为00010101
    & :两个位为1时,结果位才为1 00101010 & 10101010的值为00101010
    | :有一个位为1,结果位就为1 0110 丨1100的值为1110
    ~ 取反:1变成0,0变成1 ^100的值为011
    ^ 异或:相同为1,不同为0 0011^1110的值为0010
    #include<stdio.h>
    int main() {
        int a=0,b=999,c;
        //判断b是否大于5 或者 a<10 有一个满足 结果就是1 , 一个都不满足 结果就是0
        printf("%d\n",a>5||a<10);//1
    
        //判断b是否在0到100
        printf("%d\n",b>0&&b<1000);//1
    
        //判断b是否为0,1,2
        printf("%d\n",b==0||b==1||b==2);//0
    
        return 0;
    }
    
    

    六、运算符嵌套

    就是几个运算符组合成一个语句。
    就像小学混合四则运算一样。
    那么他们运算就有先后顺序
    a=b!=4实际上是a = ( b!=4 )也就是先判断b!=4然后再赋值给a
    而不是先赋值再判断。

    image.png

    不想记就尽量把语句拆开用。

    下一篇:C语言程序的基本结构

    相关文章

      网友评论

          本文标题:4.运算符与表达式

          本文链接:https://www.haomeiwen.com/subject/bkcfoftx.html