C语言操作符自我总结

2023-06-26,,

1.算数操作符
+    -   *    /     %

注意点:

  1. %号 只能用于整数
    2.除数不能为0
  2. /号,如果两数都是整数,结果为整数;如果有一个数为小数,结果为小数。

整型提升:凡是针对char,short型的数学运算,此时都会隐式转换为 int 型
(因为CPU运算一般以整型为基本单位)
算数转换:

long double
double 8个
float 4个
unsigned long int
long int 4个
long long 8个
unsigned int
int 4个
short 2个字节

如果某个操作数的类型在上面这个列表中排名较低,那么首先要转换为另外一个操作数的类型后执行运算。
警告: 但是算术转换要合理,要不然会有一些潜在的问题。

2.移位操作符
       << 左移操作符        左移相当于乘以2

       >> 右移操作符        右移相当于除以2

左移操作符:左边抛弃,右边补0

右移操作符:1. 逻辑移位 :左边用0填充,右边丢弃       

  1. 算术移位 :左边用原该值的符号位填充,右边丢弃。

符号位就是最高位,代表这个十进制数的正负:

     最高位如果是0,就是正数,

     最高位如果是1,就是负数,

注意:如果右移一个负数(算术移位),左边补1,没多大意义

3.位操作符(都是二进制位来说,双目操作符)
& 按位与         两个操作数都为1,结果才是1

|  按位或         两个操作数都为0,结果才是0

^ 按位异或      两个操作数相同,结果是0,两个操作数不相同,结果是1

~ 按位取反      按位取相反数  0变成1,1变成0

4.赋值操作符(双目操作符)
复制操作符最常见的就是“=”,赋值操作符可以连续使用,连续赋值
复合赋值操作符:

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

5.单目操作符
!      逻辑反操作

  •      负值
  •      正值
    &      取地址
    sizeof    操作数的类型长度(以字节为单位)
    (如果要计算数组的长度,则数组在哪里定义,在哪里计算)
    ~      对一个数的二进制按位取反
    --      前置、后置--
    ++      前置、后置++
  •      间接访问操作符(解引用操作符)
    (类型)    强制类型转换
    注意:*  间接访问操作,这个会在指针里面广泛用到。

++i,--i 先运算,再使用

i++,i-- 先使用,再运算

6.关系操作符

=
<
<=
!=  用于测试“不相等”
==    用于测试“相等”

7.逻辑操作符
&&   逻辑与       两个条件同时满足
||      逻辑或       两个条件至少满足一个

特别:
短路性:&&左侧表达式为假时,右侧表达式不会进行求值

                     ||左侧表达式为真时, 右侧表达式不会进行求值

8.条件操作符(C语言中唯一 一个三目运算符)
exp1 ? exp2 : exp3   

exp1 为真 结果为exp2 为假 结果为exp2

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

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

《C语言操作符自我总结.doc》

下载本文的Word格式文档,以方便收藏与打印。