运算符完结
逻辑运算符
&& | || | ! |
---|---|---|
and | or | 反义 |
-
&&:你我都对才有true
-
||:你我有一个对就是true
-
!:将运算结果反转true变false false变true
备注:用逻辑运算符进行运算是遵从短路原则,假设使用a&&b,a一旦不成立b中的内容也不会被执行,如果我们给c赋值为5,在a不成立的条件下,在b输入c++后,得到的c值仍然是5,但如果我们在a输入c++,得到最终c的值变为了6
由图可知即使a不成立a也会被执行,使c的值增加,同理只要a成立,则会开始执行b,那么不论b是否成立,也会使c加上一
位运算符
涉及底层逻辑,计算机为二进制编码,位运算机制不好口头解释,如图
-
&:两个值都是一才输出一,其余为零
-
|:两个值有一个是一则输出一
-
^:两个值相同输出零,不相同输出一
-
~:零变为一,一变为零
-
<<:所有数字左移动,每移动一次*2
-
>>:所有数字右移动,每移动一次/2
面试题见上图
条件运算符(三元运算使用,很好用要会,可增强代码可读性
如x?y:z意思为如果x为true则y,否则z
扩展值运算符(初学不建议使用)
- a+=b a=a+b
- a-=b a=a-b
- 乘除同理
这两种运算是给a重新赋值,并且遵循一定顺序,上图先给a赋值30并输出a,然后a以30的值来减去b,故得到10,而不是-10
字符串链接符
+的两侧只要有一方出现了string类型,就会把另外一个转换为string,a被转换变成string,进而使b在变成string,而string类型的+为连接,故出现1020,而第二个先执行a+b得出int的30后再被转换为string,故输出是string类型的30