C语言基础——运算符

本文详细介绍了C语言中的各种运算符,包括赋值运算符、算数运算符、关系运算符、逻辑运算符、位运算符、自增自减运算符、复合运算符和三目运算符,以及它们的优先级和使用规则。
摘要由CSDN通过智能技术生成

运算符

运算符按照功能分可分为:赋值运算符、算数运算符、关系运算符、逻辑运算符、位运算符(针对二进制数值)、自增自减运算符、复合运算符、逗号运算符、三目运算符。

1. 赋值运算符

功能:将等号右侧的内容赋值给等号左侧。注意:等号左侧不能是常量,否则会报错。

注:当赋值运算符左右两侧类型不一致时,默认往等号左侧转(小数转整数,舍弃小数点后面的内容)如图:

如图所示,a为int型变量,b为float型变量,当把b赋值给a时,由于默认往等号左侧转,即往a的int型上转,所以b赋值给a后,输出为66。

2.算数运算符:+  -  *  /  %

/ ---除; *---乘   %----取余数(注意取余数时左右两边都要是整数)   +----加   -  ---减

eg: int num = 10/3  --> num=3

         int num = 10%3 --> num=1 

注:当算术运算符左右两侧类型不一致时,默认往高精度转换,转换顺序如下:

       char-->int-->float-->double

 3.关系运算符: > >=  <  <=  ==  !=

    运算结果:只有0(不成立)和1(成立)

    eg: a=(3==4); --->  a=0;(因为3不等于4,不成立为假,所以a的值为0)

            a=(3<4);----->a=1;(3小于4成立为真,所以a=1);

            a=(1!=0);----->a=1;(1不等于0,成立为真,所以a=1);

4.逻辑运算符 &&  ||  !

运算结果:只有0和1

&&:左右两侧都为真,结果为1,否则是0;

eg: a=(3<=3)&&(100<101);   ----> a=1(3小于等于3成立为真,100小于101为真,最后a=1)

         int a=1,b=2,c=3,m=5;

         m=(a<b)&&(c==9);   ---->m=0(a虽然小于b,但是c不等于9,所以m为0)

         m=(a<b)&&(c=9);    ----->m=1,c=9;(a小于b,把9赋值给c,都不为0,则m为1)

         m=(a>b)&&(c=9);    ----->m=0,c=3;(a大于b不成立,m为0,后面不再运算,所以c仍然为3)

        注:&&:前面为假,后面不再运算;

|| :左右两侧有一个为真,结果为1,都不为真,结果为0

eg: int a=1,b=2,c=3,m=5;

        m=(a>b)||(c=9);   ---->m=1,c=9(a大于b为假,但后面c=9不为0为真,所以m=1且c=9)

        m=(a<b)||(c=9);   ---->m=1,c=3(a小于b为真,后面不再运算,所以m=1,c=3)

        注:|| :前面为真,后面就不再运算。

!:逻辑取反

    eg: !0=1;   !1=0;   !(-1)=0;

5.位运算符(针对二进制数) &  |  ^   <<   >>  ~

(1) &:与运算符:全1为1,否则为0

eg:

(2)|:或运算符:见1为1,全0为0;

         eg:

(3)^:异或运算符:相同为0,不同为1;

        eg: 

(4)<< >>:移位运算符;~:取反运算符;

         <<:所有的位通通向左移动,低位补0;

         >>:所有的位通通向右移动,高位补0;

         ~:按位取反:0变1,1变0;

         eg:

 6.自增自减运算符: ++(自身加一)  --(自身减一)

   eg:int num =100;

          num++;---->num=num+1; ---->num=101;(减减同)

          注 :当式子中有其他运算时: ++在前,先自身加1,再参与运算;++在后,先参与其他运算,再自身加1。(减减同)

          eg:int a= 100;

                  int b=++a;----->a=101;b=101;

                  int a=100;

                  int b=a++;-------->a=101;b=100;

7.复合运算符: +=  -= *=  /=    %=   >>=   <<=  &=  |=  ^=

   eg:                  int num=100;

                          num+=99;   ----> num=num+99;------>num=99;

                          num*=2;      ---->num=num*2;------>num=200;

                          num%=3    ------>num=num%3----->num=1;

                          >>=  <<=  &=  |=  ^=   即把对应的二进制进行位运算即可。(可参照5.位运算符)

  8.三目运算符

    结果=(表达式 1)?(表达式 2):(表达式 3);

    先运算表达式 1,表达式 1 为真,就运行表达式 2,整个三目运算符的结果就是表达式 2 的结        果,表达式 3 不再运算;

    先运算表达式 1,表达式 1 为假,就运行表达式 3,整个三目运算符的结果就是表达式 3 的结        果,表达式 2 不再运算;        

    eg:

            

9.附录 运算符优先级表

 

今天的C语言学习就到这里啦,有什么不太清楚或是想要讨论的,欢迎在评论区里留言~

                                  长路漫漫亦灿灿,你终将会成为更好地自己,加油! 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值