操作符小结

来源:互联网 发布:知行乐学教育集团 编辑:程序博客网 时间:2024/06/06 14:10

1.算数操作符

   +    -    *    /     %

   注:%的两个操作数必须为整数,其他可作用于整数或浮点数。

           /中只要有一个操作数为浮点数,即执行浮点数运算。

2.移位操作符

    分为左移操作符  <<  :左边抛弃,右边补零

        和右移操作符  >>  :逻辑右移------右移之后左边补零

                                         算术右移------右移之后左边用符号位补充(0或1)

    注:左移相当于乘2,右移相当于除2。

           移位不改变值本身,若想改变值,可  a>>=1  操作。

           左/右移只允许移动正数位,像  a>>-2  是错误的。

3.位操作符

    &      按位与

     |       按位或

     ^      按位异或(可不创建临时变量来交换两个数的值)

4.赋值操作符

    +=   -=   *=    /=     %=     <<=    >>=    &=    |=    ^=

    x=x+1  等价于  x+=1

    其他复合操作符同理

5.单目操作符

   !  逻辑反操作

   -     负值

   +    正值

   &   取地址

   sizeof     操作数的类型长度(以字节为单位)

                 sizeof(arr)/sizeof(arr[0])   可求数组大小

                 sizeof(s=a+2)   由于sizeof不是函数,因此不用计算括号里的值

   ~     对一个数的二进制按位取反

   ++   前置、后置++

    --    前置、后置--

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

               int *  p = &a      p的类型为整型指针类型

   (类型)     强制类型转换

6.关系操作符

     >     >=     <      <=     ==     !=

    注:if(i == 5)   中 == 是判断相等,不可与赋值运算符 = 混淆

            保险起见,一般写为 if(5 == i)

7.逻辑操作符

     &&    逻辑与      (当前面结果为零时,后面不用再计算)

     ||        逻辑或      (当前面结果为一时,后面不用再计算)

8.条件操作符

    exp1 ? exp2 : exp3

     求两个数中的较大值  a > b ? a : b

9.逗号操作符

    exp1 , exp2 , exp3 , ...... ,expn

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

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

    [ ]     操作数为一个数组名和一个索引值

           int  arr[10];

           arr[5]=1;

           注:*(arr+2) 相当于arr[2]

                   &arr[0]  相当于 arr

     ()    有一个或多个操作数,一个为函数名,其他为参数

      .      结构体.成员名

      ->   结构体指针 -> 成员名

原创粉丝点击