C语言初阶之操作符详解
算术操作符
+ - * / %
- 除 % 操作符之外,其他几个操作符可以用于整数和浮点数
- 对于 / 操作符如果两个操作数都是整数,执行整数除法,而只要有浮点数参与执行的就是浮点数除法
- %操作符的两个操作数必须为整数,返回的是整除之后的余数
移位操作符
<<左移操作符 >>右移操作符
注:移位操作符的操作数只能是整数
左移操作符
规则:左边抛弃,右边补0
右移操作符
右移运算分两种
1.逻辑移位
左边补0,右边丢弃
2.算术移位
左边用原该值得符号位填充,右边丢弃
正数补0,负数补1
注意移位操作符不要移动负数位
位操作符
& 按位与
| 按位或
^ 按位异或
&
|
^
赋值操作符
复合赋值符
+=
-=
*=
/=
%=
>>=
<<=
&=
!=
^=
单目操作符
就是只需要一个操作数就可以得操作符
!逻辑反操作
真变成假,假变成真
- + 负值正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制位取反
符号位也会变
- - 前置- -,后置- -
++ 前置++,后置++
前置++ - - 先++ - - 使用a
相当于 a=a+1 b=a
后置++ - - 先使用a 在++ - -
相当于 b=a a=a+1
* 间接访问操作符(解引用操作符)
()强制类型转换
关系操作符
> >= < <= != ==
逻辑操作符
&& 逻辑与
| | 逻辑或
为什么是1 2 3 4而不是1 3 3 4呢?
因为后置++ 先使用a
而&& 只要有0 后面都不算了
为什么这里是1 3 3 4
这是因为||只要满足非0后面都不算了
exp1 ? expe2 : exp3条件操作符
,逗号表达式
逗号表达式,从左往右依次执行,整个表达式结果是最后一个表达式的结果