主要讲了运算符,讲了一天
分类:算数运算符,单目运算符,关系运算符,逻辑运算符,位运算符,移位运算符,赋值运算符,条件运算符,逗号运算符
算数运算符: 加减乘除 取余
自增自减运算符: ++a 就是想让a加1,然后返回a的结果
--a 就是先让a 减1,然后返回a的结果
a++ 就是先返回a的值,再让a加1
a-- 就是先返回a的值,再让a减1
关系运算符:就是<、 > 、<=、 >= 、!=,这个没什么好写的
逻辑运算符: 与或非这三个
非: 是单目运算符 格式: !表达式
真的变假(0)假的变真(1)
与:是双目运算符 格式:表达式 && 表达式
表达式1 | 表达式2 | ||
1 | && | 1 | 1 |
1 | && | 0 | 0 |
0 | && | 0 | 0 |
0 | && | 1 | 0 |
或:也是双目运算符, 格式:表达式 || 表达式
表达式1 | 表达式2 | ||
1 | || | 1 | 1 |
1 | || | 0 | 1 |
0 | || | 1 | 1 |
0 | || | 0 | 0 |
移动运算符:双目,左移 << 右移>>
左移:高位移除,低位补0 12<<2 --->1100 110000
右移:有符号:低位移除,高位补符号位
无符号:低位移除,高位补0
位运算符: 按位取反 : ~表达式 效果:1变0 0变1
按位与: 表达式 & 表达式 效果: 两个对应的bit的值都是1时,结果位1
两个值中有一个0时为0
按位或:表达式 | 表达式 效果: 两个对应的bit的值只有一个1时,结果位1
两个值中都为0时为0
按位异或: 表达式 ^ 表达式 效果:两个bit位的值不相同时,结果位1
两个bit位的值相同时,结果为0
赋值运算符:这个没什么好写的
=
+= ---> a = a + b; <===> a += b;
-= ---> a = a - b; <===> a -= b;
*= ---> a = a * b; <===> a *= b;
/= ---> a = a / b; <===> a /= b;
%= ---> a = a % b; <===> a %= b;
<<= ---> a = a << b; <===> a <<= b;
>>= ---> a = a >> b; <===> a >>= b;
&= ---> a = a & b; <===> a &= b;
|= ---> a = a | b; <===> a |= b;
^= ---> a = a ^ b; <===> a ^= b;
条件运算符(三目运算符):表达式1 ? 表达式2 :表达式3
表达式1成立 返回表达式2的值
表达式1不成立 返回表达式3的值
sizeof运算符: 计算数据类型占用的空间大小,单位为字节
逗号运算符:格式: a = (表达式1,表达式2,表达式3,......);
优先级:
口诀: 单算移关与,异或逻条赋,逗号
单 ---> 单目运算符
算 ---> 算数运算符
移 ---> 移位运算符
关 ---> 关系运算符
与 ---> 按位与运算符
异 ---> 按位异或运算符
或 ---> 按位或运算符
逻 ---> 逻辑运算符
条 ---> 条件运算符
赋 ---> 赋值运算符
逗号 ---> 逗号运算符。
相同优先级运算符的结合方向:
单条赋:从右到左依次结果
其他运算符:从左到右进行结合