算术操作符
+ | 加法操作符 |
---|---|
- | 减法操作符 |
* | 乘法操作符 |
% | 取余操作符(只能用于整数) |
/ | 除法操作符 |
移位操作符
>> | 左移操作符(相当于乘法) |
---|---|
<< | 右移操作符(相当于除法) |
例:0000 1011
0001 0110 22 11<<1 11*2^1
0000 0101 5 11>>2 11/2^1
注:1.左移规则:左边抛弃,右边补0;
2.右移运算分为逻辑移位和算术移位;
逻辑移位:左边用0填充,右边丢弃 算术移位:左边用原值符号位补充,右边丢弃
3.不能移动负数位。
位操作符
& 按位与(有0则0)
| 按位或(有1则1)
^ 按位异或(相同为0,不同为1)
单目操作符
! | 逻辑反操作 |
---|---|
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型(以字节为单位) |
~ | 二进制按位取反 |
- - | 前置、后置- - |
++ | 前置、后置++ |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
关系操作符
> | 大于 |
---|---|
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 测试“不相等” |
== | 测试“相等” |
逻辑操作符
&& 逻辑与 || 逻辑或
条件操作符
exp1?exp2:exp3
操作符的属性
复杂表达式求值的三个影响因素:
1.操作符的优先级;
2.操作符的结合性;
3.是否控制求值顺序。
操作符优先级
简单来说就是:
!>算术运算符>关系运算符>逻辑运算符>赋值运算符