1>分类:
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
2>算术操作符
3>移位操作符
左移操作符规则:左边抛弃,右边补0
右移操作符规则:
1. 逻辑移位 左边用0填充,右边丢弃
2. 算术移位 左边用原该值的符号位填充,右边丢弃
注意:
4>位操作符
5>赋值操作符
注意:
6>复合赋值符
操作符 | 功能 |
---|
+= | 相加之后赋值 |
-= | 相减之后赋值 |
*= | 相乘之后赋值 |
/= | 相除之后赋值 |
%= | 取余之后赋值 |
>>= | 右移之后赋值 |
<<= | 左移之后赋值 |
l= | 按位或之后赋值 |
&= | 按位与之后赋值 |
^= | 按位异或相后赋值 |
注意:
7>单目操作符
| |
---|
操作符 | 功能 |
! | 逻辑反操作 |
+ | 正值 |
- | 负值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 第一个数的二进制按位取反 |
- - | 前置 后置- - |
++ | 前置 后置+ + |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
注意:
-
sizeof操作符计算的是变量(类型)所占空间的大小,是按字节来计算,重要的是,sizeof
(a+b)里面的表达式不参与计算,若a,b都是int行类型,其结果依然是4;
-
当数组作为参数为函数传参时,由于数组要发生降级,其会降级为一个指针,如果此时在一个函数中sizeof计算数组的大小是不可以的,其计算的是数组降级为指针的大小。
8>关系操作符
操作符 | 功能 |
---|
> | 大于 |
>= | 大于等于 |
| |
< | 小于 |
<= | 小于等于 |
!= | 不等于 |
== | 等于 |
注意:
9>逻辑操作符
10>条件操作符
操作符 | 功能 |
---|
exp1?exp2:exp3 | exp1为真,结果为exp2,否则结果是exp3 |
11>逗号操作符
操作符 | 功能 |
---|
exp1,exp2,…expN | 从左往右依次执行,整个表达式结果是最后一个表达式的结果 |