C语言操作运算符

 

 

算术运算符

  • +   -   *   /

       均可作用于整数或浮点数。

  • x   /   y

   若想得到一个浮点数,则至少第一运算符(x)必须为浮点数。

   例:1 / 2 = 0;1.0 / 2 = 0.5;

  • x   %   y

   1)只可作用于整数;

     2)求余的结果按 x % y = x - x / y * y ,则余数的符号取决于第一运算符的结果。

    例:11 % 2 = 1;-11 % 2 = -1;

 

移位运算符

  • x  <<   n

    将x的各个二进位按顺序往左移动n位,移出的位舍弃,右侧空出位补 0。

  • x  >>   n

    1)逻辑移位:将x的各个二进位按顺序往右移动n位,左边补0,右边丢弃。

      2)算术移位:将x的各个二进位按顺序往右移动n位,左边补原值的符号位,右边丢弃。

    

   注:移动负数位为未定义行为。

 

位操作符

  • x  &  y

  1)x 与 y 都为真为真,一假为假。

  2)1 & x = x ;0 & x = 0

  • x  |  y

  1)x 与 y 都为假为假,一真为真。

  2)1 | x = 1;0 | x = x

  • x ^ y

    1)x,y相同为假,相异为真。

  2)1 ^ 1 = 0;1 ^ 0 = 1

  • ~ x

  1)取反

  2) ~110 => 001

 

赋值运算符

  • =
int x = 0;
x = 10;
  • 复合赋值符
+=   -=   *=   /=   %=   >>=   <<=   &=   |=   ^=

  x += 10;    =>   x = x+ 10;

 

单目运算符

  •  -(负号)   +(正号)   &(取地址)
  • ++  --

  1)前置  ++/--

  2)后置  ++/--

  • *(解引用 / 简介访问)
  • (类型)x   (强制类型转换)
  •  sizeof() (操作数的类型长度,以字节为单位

 

关系操作符

<   <=   >   =>   !=   ==  
  • = 与 == 不一样,一个为赋值操作符,一个为关系操作符

 

逻辑操作符

  • &&(逻辑与)
  • ||(逻辑或)
  • !(逻辑非)

 

条件操作符

  • m  ?  x  :  y  

 

逗号操作符

  • x, y, z,……

 

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

  • [ ]
  • ( )
  • .   ->

 

posted @ 2018-12-22 22:37  lkimprove  阅读(249)  评论(0编辑  收藏  举报