C语言操作符的种种

      C语言提供了多种多样的操作符,这是很多人诟病它的一个缺点,但这使得它相比较于其它语言的操作符有着更大的价值,这也是C语言适用于开发范围极广的应用程序的原因之一。

1,算数操作符

         C提供了所有常用的算数操作符: +    -     *     /     %

  •      除了%操作符外,其余几个操作符既适用于浮点型友适用于整数类型。
  •      / 操作符的两个操作数都是整数时,执行整数运算,其它情况下执行浮点数除法。(如果整数运算的任一操作数为负值,运算的结果由编译器定义)

2,移位操作符

         >> 右移操作符

         <<  左移操作符 (有乘2的效果)

  • 左移规则:左边抛弃,右边补0
  • 右移规则:1逻辑移位(无符号值执行的移位都是逻辑移位,有符号值的移位取决于编译器)

                                    左边用0填充,右边丢弃、

                       2,算数移位

                                     左边用原值的符号位填充,右边丢弃

说明:移位运算符,不要移动负数位,标准未定义

3,位操作符 (操作数为整数)

    &     |     ^

4,赋值

     =

  • 结合性:从右到左

      复合赋值符

       +=             -=                *=               /=              %= 

       <<=          >>=            &=              ^=             |=

  • 优点:使源代码更加容易阅读和书写。

5,单目操作符

         !            ++            -          &             sizeof

         ~           --              +         *              (类型)

  •    !  操作符对它的操作数进行逻辑取反操作,产生一个整形结果,0或1.
  •    ~ 对整数类型的操作数进行求补操作。
  •     - 产生操作数的负值。
  •    + 无实际意义,为了与- 操作符对称。
  •    & 产生它的操作数的地址。
  •     * 间接访问操作符,和指针一块使用,用于访问指针指向的值
  •     sizeof判断操作数的类型的长度,以字节为单位表示,操作数既可以是个表达式(sizeof x),也可以是两边加上括号的类型名 (sizeof (int))。当操作数是数组名时,返回数组的长度。
  •      (类型)即强制类型转换(cast),把表达式的值转换为另外的类型。
  •    ++和--都有两个变型,分别为前缀形式和后缀形式。

6,关系操作符

          >         >=         <            <=           !=            == 

  • 这些操作符产生的结果都是一个整形值,为0,则为假,为1,则为真。

7,逻辑操作符

         &&    ||

  • 形式:expression1  &&   expression2,若两者都为真,则结果为真。
  • 对于&操作符:如果左操作数为真,就再对右操作数进行求值;若左操作数为假,则右操作数就不再求值;
  • 对于||操作符:首先对左操作数先求值,为真,则右操作数不再求值,
  • 表达式的顺序必须保证正确。如非法代码:if (x>=0&&x<=MAX&&array[x]==0),,,这段代码会首先检查数组下标是否合法,若不合法,则会忽略该表达式,从而产生错误。

8,条件操作符

              (expression1 )  ?( expression2 ) : (  expression3)

  •     先计算expression1 ,为真,则表达式的值为expression2 ,否则为 expression3 

9,逗号操作符

      expression1   ,    expression2  ,.....,expression N

  • 从左向右逐个进行求值,而整个逗号表达式的值就是最后那个表达式的值

10,下标引用、函数调用和结构成员

      array[下标]       .           ->             ()

  •   [ ] 操作数 :一个数组名 + 一个索引值。
  •    .  结构体 . 成员名。
  •   ->结构体指针 -> 成员名

     这是我个人现阶段对C语言操作符的浅薄认识,颇有不足,所以再献上一篇技术大牛的博客及更详细的介绍。

    点击了解           菜鸟教程


                                 



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值