操作符的分类:
1.算术操作符
2.移位操作符
3.位操作符
4.赋值操作符
5.单目操作符
6.关系操作符
7.逻辑操作符
8.条件操作符
9.逗号表达式
10.下标引用、函数调用和结构成员
1.算术操作符:
+ - * / %
在使用算术操作符时,应该注意 %(取模)操作符只能在整数之间使用,而其他算术操作符可以用于整数和浮点数。
2.移位操作符:
<< 左移操作符
>> 右移操作符
<< 左移操作符
>> 右移操作符
1.算术右移 (左边拿符号位来补,右边抛弃)
2.逻辑右移 (左边拿0来补,右边抛弃)
int num = -1
num >> 1
在移位操作符中,不可以移动负数位,这是标准未定义的。
3.位操作符:
& | ^
与 或 异或
按位异或:相同为0,相异为0
4.赋值操作符: =
复合赋值符: += -= *= /= %= >>= <<= &= |= ^=
复合赋值符可以简化程序,减少程序员的工作量,方便理解。
5.单目操作符
! 逻辑反操作
- 负值 + 正值
& 取地址 ~ 对一个数的二进制按位去反
-- 前置、后置 -- ++ 前置、后置 ++
* 间接访问操作符 (类型)强制类型转换
sizeof 操作数的类型长度(以字节为单位)
注意:1. sizeof 不是函数,只是操作符,它返回的是一个变量或者类型的大小。
2. a++ 先使用a,再增加 ++a 先增加,再使用a
a-- 先使用a,再减 --a 先减,再使用a
3. float b = 1.23
强制类型转换 : int c =(int)b
强制转换后: c = 1
6.关系操作符
> >= < <= != ==
大于 大于等于 小于 小于等于 不等于 等于
7.逻辑操作符
&& ||
逻辑与 逻辑或
区分逻辑与和按位与
区分逻辑或和按位或
8.条件操作符
exp1?exp2 : exp3
如果表达式exp1为真,则输出为表达式exp2,为假,则输出为exp3。
9.逗号表达式
exp1,exp2,exp3,....expN
从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
10.下标引用、函数调用和结构成员
(1)[ ] 数组下标引用操作符
(2)() 函数调用操作符
(3) .结构体.成员名
->结构体指针->成员名