c语言操作符汇总

分类:

  1. 算数操作符
  2. 移位操作符
  3. 位操作符
  4. 赋值操作符
  5. 单目操作符
  6. 关系操作符
  7. 逻辑操作符
  8. 条件操作符
  9. 逗号表达式
  10. 下标引用、函数调用和结构成员

算术操作符      +        -         *        /       %                              
1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。


移位操作符

                 <<   左移操作符                       >>  右移操作符

左移分为逻辑左移和算数左移,这两个左移规则相同

左移规则:二进制数整体向左移动移位,最左边的一位抛弃,最右边补0。

例:                                 00000000 00000000 00000000 01010100

      左移一位            0<---0000000 00000000 00000000 01010100<---0

右移分为逻辑右移和算数右移,这两个右移规则不同

逻辑右移规则:二进制数整体向右移动移位,最右边的一位抛弃,最左边补0。

例:                                00000000 00000000 00000000 01010100

    逻辑右移一位         0-->00000000 00000000 00000000 0101010-->0

算数右移规则:二进制数整体向右移动移位,最右边的一位抛弃,最左边补原来的符号位。

例:                                10000000 00000000 00000000 01010100

    算数右移一位         1-->10000000 00000000 00000000 0101010-->0


位操作符

             按位与 &                        按位或 |                            按位异或 ^    

注:他们的操作数必须是整数


赋值操作符 =           

   注意可以连续赋值,但不建议使用

例: a = b = c+1;   相当于   b = c+1;  c = b;

复合赋值符        +=     -=         *=          /=       %=        >>=        <<=          &=             |=              ^=

用法         i+=1; 就相当于i = i +1;                       其他同理;


单目操作符

! 逻辑反操作

- 负值

+ 正值

& 取地址

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

          int arr[] = {'0','1','2'};

          sz0 = size(arr[0]);

          sz = sizeof(arr)/sizeof(arr[0]);

         可以得到下标为0的元素的类型长度sz0和数组中的元素个数sz

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

           取反时用的补码

-- 前置、后置--         ++ 前置、后置++

           前置++/--,先++/--,再操作

           后置++/--,先操作,再++/--

例:    a = i++;       后置++,先将i的值赋给a,再对i进行++

           b = --i;         前置--,先对i进行--,再将--后的i赋给b

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

例:           int* p = 0;      创建了一个整形指针变量p,指针变量中存的是地址,要对p的值进行改变,就要解引用

                 *p = 20;       通过p的地址找到存储块,将20赋给p

(类型) 强制类型转换

float  a = 3.14;          只要得到整数3,就可以用强制类型转换  b =(int)3.14,这里b = 3;


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

注意:区分等于== 和 赋值操作符 =


逻辑操作符          逻辑与&&          逻辑或||

注意:区别 逻辑与&& 与按位与& ,逻辑或|| 与按位或|

特点:n = (0 && i++); 逻辑与&& 前操作数若为假,则结果为假,n = 0;后操作数不进行运算,所以i不发生变化

           m = (1 || --i); 逻辑或|| 前操作数若为真,则结果为真,m = 1;后操作数不进行运算,所以i不发生变化


条件操作符      exp1 ? exp2 : exp3

                            就相当于    a>b ? c=a : c=b  或   c = a>b ? a : b      


逗号表达式                exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果。

例:int a = 1;
       int b = 2;
       int c = (a>b, a=b+10, a, b=a+1);

      从左向右依次执行,第一个表达式无意义,第二个表达式得到a=12,第三个表达式无意义,第四个表达式得b=13

       结果是最后一个表达式的结果,所以c = 13;


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

1. [ ]   下标引用操作符
操作数:一个数组名 + 一个索引值
                          int arr[10];                创建数组
                          arr[9] = 10;               使用下标引用操作符,[  ]的两个操作数是arr和9。
         
2. ()    函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

3.  . 和 ->    访问一个结构的成员
                            . 结构体.成员名
                            -> 结构体指针->成员名

        

                          

猜你喜欢

转载自blog.csdn.net/Watery________1314/article/details/83099072