C语言中操作符总结

操作符的分类:

算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式。

算数操作符: 
            +   加:左右操作数适用于整型和浮点型数。
            -    减:左右操作数适用于整型和浮点型数。
            *    乘:左右操作数适用于整型和浮点型数。
            /    除:左右操作数适用于整型和浮点型数。 

            %  模运算或求余:左右两边接受两个整型操作数,返回值是余数而不是商。 

移位操作符:
          <<    左移操作符   左边溢出的移除,右边空出的位用0补上;
          >>    右移操作符   左边空出的位有两种方式补充:
                  1). 逻辑移位  在左边空出的用0补充。
                  2).算数移位  在左边空出的用符号位原本(符号位原本的为1就用1 补充 符号位原本就是0就用0 补充)补充。

         补充:(-1)除外,因为(-1)右移一位(-1),(-1)左移一位(-2)。

                   1、右移一个数等价于给一个数除2。  ----------->      a>>1   <==>    a/2。

                   2、左移一个数等价于给一个数乘2。  ----------->      a<<1   <==>    a*2。

 位操作符:
            &    按位与        如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。(取二进制)
            |     按位或        如果两个相应的二进制位都为0,则该位的结果值为0,否则为1。

            ^    按位异或     如果两个想应的二进制位相同,  则该位的结果值为0,不同为1。(交换变量)

赋值操作符:
            +=                %=
             -=                <<= 
            *=                >>= 
            /=                  &= 

           ^=                  |=         

单目操作符:
             !          逻辑反操作
             -            负值
             +           正值
             &           取地址
             sizeof     操作数的类型长度(以字节为单位) 
             ~           对一个数的二进制按位取反
             --           前置、 后置--
            ++         前置、 后置++
            *            间接访问操作符

          (类型)    强制类型转换

          补充:

                    sizeof (操作数的类型长度,以字节为单位) 
                (1)sizeof(变量),其中( )可以省略,说明sizeof不是函数,对于函数来说,它后面的( )不可以省略。 
                (2)sizeof(类型),其中( )不可以省路,此时sizeof仍不是函数。 
                (3)sizeof( )内部的表达式不参与计算 

关系操作符:
             >
            <=
             <
            >=

             ==          !=

    补充:

            =与==的用法及注意事项,=为赋值,==为等于。(常量写左)

逻辑操作符:
             &&   逻辑与
             ||     逻辑或
          eg:
                非0为真            0为假
               1&2                  0
               真&&真            1
               真&&假            0 
               假&&假            0
               1|2                    3
               真&&真            1

               真&&假            1

               假&&假            0     

条件操作符:
               形式:

                        exp1  ?   exp2   :   exp3

               补充:exp1为真,整个表达式的结果为exp2的结果,否则为exp3的结果。

逗号表达式:

            exp1,exp2,exp3,exp4;

            补充:

                   逗号表达式是用逗号隔开的多个表达式,

                   从左向向右依次执行,整个表达式的结果是最后一个表达式的结果。

下标引用、函数调用和结构成员 :
              1.[ ] 
              操作数:一个数组名 + 一个索引值 
             例如:arr[10],[ ]的操作数是arr和10 
             2. ( ) 
             函数调用操作符,接受一个或多个操作数,第一个操作数是函数名,剩余的操作数就是传递给函数的参数。 
            3. 访问一个结构的成员 
          (1) . 
            结构体 . 成员名 
         (2)-> 
           结构体指针 -> 成员名

下附一张优先级等级表:

  

猜你喜欢

转载自blog.csdn.net/jochebed666/article/details/79857384