• C/C++运算符超详细讲解(系统性学习day5)


    目录

    前言

    一、运算符的概念与分类

    二、算术运算符

    三、关系运算符

     四、逻辑运算符

    五、赋值运算符

    六、运算符的优先级 

    总结


     

    前言

    本篇文章是对运算符的具体讲解。


    一、运算符的概念与分类

    概念:

    运算符就是一种告诉编译器执行特定的数学或逻辑操作的符号,用来表示针对数据的特定操作,也称之为操作符。在计算机编程中,运算符用于操作数据,执行各种数学和逻辑运算,并产生结果。

    分类:

    1.根据分类对象的多少可以分为单目运算符(又名一元运算符)、双目操作符(又名二元操作符)、三目操作符(又名三元操作符)。

    2.根据运算作用不同又可以分为:算术操作符、关系操作符、逻辑操作符、位运算符、赋值运算符、杂项操作符等。

    二、算术运算符

    含义:

    算术运算符是对数值类型变量进行运算的,属于上述的双目操作符,结合性是从左到右的,算术优先级就是我们所知的 “ * 、/ 、% ”>“ +、 -”

    (实例中的变量x为20,变量y为10)
    运算符描述实例
    +把两个操作数相加x+y得到15
    第一个操作数减去第二个操作数x-y得到5
    *把两个操作数相乘 x*y得到50
    把两个操作数相除x/y得到2
    %取模,结果为整除后的余数x%y得到0
    ++自增运算符,整数值加一x++得到11
    --自减运算符,整数值减一x--得到9

    需要注意的是:

    a++(a--) 与 ++a(--a)的区别,前者为赋值运算,后者为运算赋值。当其作为一个独立的语言使用时,是等价的。但是当它出现在语句中就会有所不同。

    下面通过一个实例代码来帮助大家更好的理解:

    1. #include
    2. int main()
    3. {
    4. int y;
    5. int x = 10;
    6. y = x++;
    7. printf("先赋值后运算:\n");
    8. printf("y 的值是 %d\n", y );
    9. printf("x 的值是 %d\n", x );
    10. x = 10;
    11. y = x--;
    12. printf("y 的值是 %d\n", y );
    13. printf("x 的值是 %d\n", x );
    14. printf("先运算后赋值:\n");
    15. x = 10;
    16. y = ++x;
    17. printf("y 的值是 %d\n", y );
    18. printf("x 的值是 %d\n", x );
    19. a = 10;
    20. c = --a;
    21. printf("y 的值是 %d\n", y );
    22. printf("x 的值是 %d\n", x );
    23. return 0;
    24. }

    程序运行的结果如下:

    152f43ff847647c8924bca7f102bbaf7.png
            
           
          
          
         
          
           

             

    三、关系运算符

    含义:

    关系运算符的值只能是0或1。当运算符的值为真时,结果值都为1;反之,都为0;关系运算符也属于双目运算符,结合性为从左到右,优先级为“ > 、 < 、 >= 、 <=  ”  >  " == 、 !=  "

    (假设实例中的变量x的值为20,变量y的值为10)
    运算符 描述实例
    ==检查俩个操作数的值是否相等,如果相等则为真 x==y为假
    !=检查俩个操作数的值是否相等,如果不相等则为真x!=y为真
    检查左操作数是否大于右操作数,如果符合则为真 x>y为真
    检查左操作数是否小于右操作数,如果符合则为真x
    >=  检查左操作数是否大于等于右操作数,如果符合则为真x>=y为真
    <=检查左操作数是否小于等于右操作数,如果符合则为真x<=y为假

    下面通过一个实例代码来帮助大家更好的理解:

    1. #include
    2. int main()
    3. {
    4. int x = 20;
    5. int y = 10;
    6. int c ;
    7. if( x == y )
    8. {
    9. printf("x 等于 y\n" );
    10. }
    11. else
    12. {
    13. printf("x 不等于 y\n" );
    14. }
    15. if ( x < y )
    16. {
    17. printf("x 小于 y\n" );
    18. }
    19. else
    20. {
    21. printf("x 不小于 y\n" );
    22. }
    23. if ( x > y )
    24. {
    25. printf("x 大于 y\n" );
    26. }
    27. else
    28. {
    29. printf("x 不大于 y\n" );
    30. }
    31. int t;
    32. t = x;
    33. x = y;
    34. y = t;
    35. if ( x <= y )
    36. {
    37. printf("x 小于或等于 y\n" );
    38. }
    39. if ( y >= x )
    40. {
    41. printf("y 大于或等于 x\n" );
    42. }
    43. return 0;
    44. }

       程序运行的结果如下:
         3779239c1bd04fed8e2402627be646f8.png
            
           
            
       
         

     

     四、逻辑运算符

    含义:

    用于连接多个条件的运算符,结果也是为真(1)或假(0),结合性为从右到左

    (假设实例中的变量x的值为0,变量y的值为1)
    运算符 描述实例
    &&称之为逻辑与运算符,当且仅当俩个操作数都不为零时,条件为真。A&&B为假
    ||称之为逻辑或运算符,当俩个操作数存在人一个非零时,条件为真。A||B为真
    称之为逻辑非运算符,用来逆转操作数的逻辑状态。将真变为假,假变为真。!(A&&B)为真

    下面通过一个实例代码来帮助大家更好的理解:

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int x = 20;
    5. int y = 10;
    6. if ( x && y )
    7. {
    8. printf("条件1为真\n" );
    9. }
    10. if ( x || y )
    11. {
    12. printf("条件2为真\n" );
    13. }
    14. x = 0;
    15. y = 10;
    16. if ( x && y )
    17. {
    18. printf("条件3为真\n" );
    19. }
    20. else
    21. {
    22. printf("条件3为假\n" );
    23. }
    24. if ( !(x && y) )
    25. {
    26. printf("条件4为真\n" );
    27. }
    28. return 0;
    29. }

    程序运行的结果如下:

    f828e6f945d142808a73ea1f5b58c6e7.png
           
             

                  

    五、赋值运算符

    含义:

    赋值运算符就是将某个值赋给某个指定的变量,结合性为从右到左

    运算符 描述实例
    简单的赋值运算符,把右边的操作数赋给左边操作数    C=A+B将把A+B的值赋给C
    +=加且赋值运算符,把左边操作数加上右边操作数的结果赋值给左面的操作数 C+=A相当于C=C+A
    -=  减且赋值运算符,把左面的操作数减右面操作数的结果赋值给左面的操作数C-=A相当于C=C-A
    *=乘且赋值运算符,把左面的操作数乘以右边的结果赋值给左面的操作数C*=A相当于C=C*A
    /=除且赋值操作符,把左面的操作数除以右面的操作数的结果赋值给左面的操作数C/=A相当于C=C/A
    %=求模且赋值运算符,求两个操作数的模赋值给左边的操作数C%=A相当于C=C%A
    <<=  左移且赋值运算符C<<=2等同于C=C<<2
    >>=右移且赋值运算符C>>=2等同于C=C>>2
    &=按位与且赋值运算符C&=2等同于C=C&2
    ^=按位异或且赋值运算符C^=2等同于C=C^2
    |=按位或且赋值运算符C|=2等同于C=C|2

     下面通过一个实例代码来帮助大家更好的理解:      

    1. #include <stdio.h>
    2. int main()
    3. {
    4. int a = 21;
    5. int c ;
    6. c = a;
    7. printf(" = 的运算符实例,c 的值 = %d\n", c );
    8. c += a;
    9. printf("+= 的运算符实例,c 的值 = %d\n", c );
    10. c -= a;
    11. printf("-= 的运算符实例,c 的值 = %d\n", c );
    12. c *= a;
    13. printf("*= 的运算符实例,c 的值 = %d\n", c );
    14. c /= a;
    15. printf("/= 的运算符实例,c 的值 = %d\n", c );
    16. c <<= 2;
    17. printf("<<= 的运算符实例,c 的值 = %d\n", c );
    18. c >>= 2;
    19. printf(">>= 的运算符实例,c 的值 = %d\n", c );
    20. c &= 2;
    21. printf("&= 的运算符实例,c 的值 = %d\n", c );
    22. c ^= 2;
    23. printf("^= 的运算符实例,c 的值 = %d\n", c );
    24. c |= 2;
    25. printf("|= 的运算符实例,c 的值 = %d\n", c );
    26. return 0;
    27. }

       程序运行的结果如下:

    85fe7038d19e49209fb2cfdac1093e00.png
           
          
            
            
            
       
            

            

    六、运算符的优先级 

     含义:

    运算符的优先级往往会影响一个表达式的运算的结果,比如最常见的就是乘除运算的优先级大于加减运算。

    类型运算符结合性
    乘除 *   /   %从左到右
    加减 +  -从左到右
    后缀() [] ++ -- 从左到右
    一元+  -  ! ~ ++ --(type)* & sizeof从右到左
    移位 <<  >>从左到右
    关系<<= >>=从左到右
    相等与不等==   !=从左到右
    位与AND&从左到右
    位异或XOR    ^从左到右
    位或OR |从左到右
    逻辑与AND&&从左到右
    逻辑或OR||从左到右
    条件?:从右到左
    赋值 =  +=   -=   *=   /=    %=    >>=   <<=   &=  ^= |=从右到左
    逗号,从左到右

       

     


    总结

            本篇文章详细地讲了C语言的运算符,希望能够帮到大家!

           以后还会给大家展现更多关于C语言的其他重要的基础知识,感谢大家支持懒大王!

           希望这篇博客能给各位朋友们带来帮助,最后懒大王请来过的朋友们留下你们宝贵的三连以及关注,感谢你们!

     

  • 相关阅读:
    5.Flink实时项目之业务数据准备
    Vue2父传子、子传父和兄弟间互传
    SpringCloud之Feign
    Rocky Linux安装部署Elasticsearch(ELK日志服务器)
    记一次线上Redis内存占用过高、大Key问题的排查
    CMake中math的使用
    【ASP.NET Core】设置 Web API 响应数据的格式——FormatFilter特性篇
    05【数组的扩展】
    Laravel 多语言项目开发
    JavaScript在IE和标准浏览器下的兼容性处理
  • 原文地址:https://blog.csdn.net/weixin_58070962/article/details/133081502