这篇文章先来更新算数操作符、算数操作符、移位操作符、位操作符、赋值操作符、单目操作符、逻辑操作符、三目操作符、 逗号表达式。
算数操作符
+ - * / %(加减乘除 取余)
/ 除号
虽然我们已经定义a为浮点型,但输出结果仍为0,
要保证结果是小数,除数和被除数至少有一个是小数
%取余
注意:两端必须都是整数
移位操作符
<< 左移操作符
把a的二进制位向左移动一位
左边丢弃,右边补0
右移操作符
- 算数右移——右边丢弃,左边补原符号位;
- 逻辑右移——右边丢弃,左边补0.
把a的二进制位向右移动一位
位操作符
& 按位与
这里的"位"指的是二进制位
有一个是0就是0
| 按位或
与按位与的思路相同,但是有一个为1就为1
^ 按位异或
对应的二进制位进行异或
规则:相同为0,相异为1
位操作符的操作数必须是整数!
赋值操作符
= += -= *= /= >>= <<= %=
= 赋值
== 判断相等
比如,给一个变量赋值:
int a = 1;
赋值操作符也可以连续使用:(不推荐)
int y =10;
int x = 0;
int a = 0;
a = x = y + 1;
a+=b意思为:a=+b,
a*=b意思为:a=a*b,
其他赋值运算符类似。
单目操作符
单目操作符只有一个操作数。
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 对一个数的二进制按位取反(二进制中所有数字0变成1,1变成0) |
-- | 前置、后置-- |
++ | 前置、后置++ |
(类型) | 强制类型转换 |
注意:sizeof计算的是括号里表达式结果的变量类型大小,sizeof括号中的表达式是不参与运算的。
&——取地址操作符
逻辑操作符
只看真假!0为假,1为真;true为真,false为假。
&&——逻辑与——有一个为假就为假
在这里,b为0,即b为假,由于"一假则假",所以a&&b为假,即if里的表达式不成立,所以输出www。
| | ——逻辑或——有一个为真就为真
在这里,b为假,但a不为0,因此a为真,由于"一真则真",所以a||b为真,即if里的表达式成立,所以输出hhh。
区分逻辑与和按位与:区分逻辑或和按位或
逻辑与(或)看的是表达式真假,按位与(或)看的是二进制位。
1&2——0
1&&2——1
1|2 ——3
1||2 ——1
三目操作符
a=表达式1?表达式2 :表达式3
表达式1的结果为真吗?为真,把表达式2的结果赋给a;不为真,把表达式3的结果赋给a。
逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。从左向右依次计算,整个表达式的结果是最后一个表达式的结果。
今天的分享到这里就结束啦。