【C语言】操作符

        C语言中的操作符可分为::

1.算术操作符

2.移位操作符

3.位操作符

4.赋值操作符

5.单目操作符

6.关系操作符

7.逻辑操作符

8.条件操作符

9.逗号表达式

10.下标引用

11.函数调用

12.结构成员

1.算术操作符

        +          加                与数学中的一样

        -           减                与数学中的一样

        *           乘                与数学中的一样

        /           除                这是默认取整的除法(向下取整),若想结果保留小数,则除数和被除数最少有一个是浮点数。

        %         取余                两端的数必须是整型,右端不能为0.

2.移位操作符        

        移动的是二进制位。

        整数的二进制表示形式有三种:原码,反码,补码。

        原码:直接根据数值写出的二进制序列就是源码(对于负数而言,最高位是1,其余位依据去掉负号的数值写出即可)。举例:-1的原码为:10000000  00000000  00000000  00000001,而1的原码为:00000000  00000000  00000000  00000001   ,显然,它们仅仅在最高位(符号位)上有差别。

        反码:原码的符号位不变,其它位按位取反就是反码

        补码:反码加1,就是补码

        

        还是以-1为例,它的三种表现显形式分别为:

        原码:10000000  00000000  00000000  00000001

        反码: 11111111    11111111   11111111    11111110

        补码;    11111111    11111111   11111111    11111111

        需要知道的是:内存中存储的是数据的补码(包括0),而正数的原码,反码,补码是相同的。

        

        <<        左移位操作符    格式为:标识符<<n     n为移动的位数   

        移动规则:左边丢弃,右边补0,相当于乘2

        

        >>        右移位操作符     格式为:标识符>>n      n为移动的位数 

         算术右移移动规则:右边丢弃,左边补原符号位,相当于除2
         逻辑右移移动规则:右边丢弃,左边补0,

         我们通常遵循的是算术右移规则

        此处结果为-3是因为-5/2结果为-2.5,需要向下取整。

3.位操作符

        此处的位是二进制位,且操作数必须是整数

        &        按位与        逻辑与是&&        

        使用格式位:操作数1 & 操作数2        对两个数的每一位二进制位进行按位&操作:任意一位为0则为0,两位都为1才是1。

          0000  1111             15

      &  0000  0001           &1


         0000   0001              1

        即 15&1=1

        |         按位或         逻辑或是||   

         使用格式位:操作数1 | 操作数2     对两个数的每一位二进制位进行按位|操作:任意一位为1则为1,两位都为0才是0。

        0000  1111             15

     |  0111  1111            | 127


        0111 1111               127

          即 15 | 127=127

        ^        按位异或

        使用格式位:操作数1 ^ 操作数2     对两个数的每一位二进制位进行按位^操作:如果两个操作数对应的位不一样,则结果为1,否则为0。

        0000 0011          3

     ^ 0000 0101       ^ 5


        0000 0110         6

          即 3^5=6

4.赋值操作符

        =                        不建议连续赋值

        +=

        -=

        *=

        /=

        %=

        >>=

        <<=

        a=b→意为将b的值赋给a,b保留原先的值。

        a+=b →a=a+b,余下的与其相似

        

5.单目操作符

        单目操作符是只有一个操作数的操作符

        !                逻辑反

       使用结构为: !a      只有右边一个操作数,意为逻辑取反,即若a为真,则 !a为假,若a为假,则!a为真。

        -                   负值

        使用结构为:-a         只有右边一个操作数,意为数值取反,即若a为1,则-a为-1,若a为-1,则a为1。

        +                  正值        没有什么实际意义,经常省略。

        &                  取地址操作符               注意区别与按位与操作,按位与是双目操作符,取地址操作符是单目操作符

        *                   间接访问操作符(解引用操作符)

        详解见:https://mp.csdn.net/mp_blog/creation/editor/126272240

        

        sizeof           求操作数的类型长度(以字节为单位)  可以计算变量,类型,数组

        详见:https://mp.csdn.net/mp_blog/creation/editor/126211677

        注意:1.sizeof在计算大小时,对变量名可以省略(),但是对数据类型不可以省略(),由此也可以证明sizeof不是函数,而是一个操作符。

                   2.sizeof 括号内部的表达式不参与运算

        ~                  对一个数的二进制位按位取反,包括符号位,即0变为1,1变为0

        使用格式为:操作数2=~操作数1

        

        --                  前置--:--a  或 后置--  :a++

        ++                前置++:++a 或 后置++:a++

        后置意为先使用后++/--,前置意味着先++/--,后使用。

     (类型)         强制类型转换        使用格式为:(类型x)操作数        意味将操作数强行转换为类型x的类型数

6.关系操作符

        >                                  大于

        >=                                大于等于

        <                                  小于

        <=                                小于等于

        !=                                 逻辑判断——不等于

        ==                                逻辑判断——等于                      区别与一个“=”,意味赋值

        注意:==不能用于判断两个字符串是否相等

7.逻辑操作符

                &&                        逻辑与                        双目操作符

        使用结构为:a&&b     a或b有一个为假,则为假,同时为真才为真。并且,若a为假,则整个表达式结果为假,后续不再计算b的值。

                ||                           逻辑或                        双目操作符

        使用结构为:a||b        a或b有一个为真,则为真,同时为假才为假。并且,若a为真,则整个表达式的值为真,后续不再计算b的值。

        对于逻辑操作符,只看真假,最后结果为0或非0,0为假,非0为真。

8.条件操作符

        也称为三目操作符(唯一)

        格式为:表达式1?表达式2:表达式3     意为若表达式1为真,则运算结果为表达式2,否则运算结果为表达式3

9.逗号表达式

        由逗号隔开的一串表达式,逗号表达式要从左向右依次计算,但是整个表达式结果为最后一个表达式的值。

10.下标引用

        [ ]                下标引用操作符   结构为:数组名[下标值 ]      数组名和下标值准确定位到了具体数组的具体值。

        详细访问另一篇介绍数组的文章:https://mp.csdn.net/mp_blog/creation/editor/126436919

11.函数调用

        ()        函数调用操作符 

            详细访问另一篇介绍数组的文章:https://mp.csdn.net/mp_blog/creation/editor/126391391

12.结构成员

        结构体访问操作符有两种:分别是 . 和 →

                                 格式为:结构体变量名.成员名

        →                        格式为:结构体指针→成员名

 

 

       本文代码链接为:https://github.com/qigezongdui/C-

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值