一. 算数运算符
算术运算符就是一些普通的加减乘除,这里就不做过多的陈述了
加 : +
减 : -
乘 : *
除 : /
取余 : %(这个就是我们小学学的除法的余数)
二. 逻辑运算符
逻辑运算符有3种,分别是逻辑与(&&),逻辑或(||),逻辑非(!)
这里我讲解一个容易被忽略的点,就是逻辑与(&&)碰到了"0",就会被"阻断",什么叫做阻断呢,就是逻辑与(&&)后面的表示式或者其他的东西不会执行了,逻辑或(||)碰到了"1"会被"阻断",我接下来举个例子看一下就知道了。
#include<cstdio>
int main(){
int a=10;
int b=20;
int c = 1;
if (a>10 && c++){
// 逻辑与(&&)碰到"0"被阻断,c++这段代码不会执行,所以c=1
printf("c=%d\n",c);
}
printf("c=%d\n",c);
if (a>1 || b++){
// 逻辑或(||)碰到"1会被阻断",b++这段代码不会执行,所以b=20
printf("b=%d\n",b);
}
}
看上述代码,在第一个if语句中,由于逻辑与(&&)左边的是"0",所以直接被阻断,也就是说逻辑与(&&)后面的代码不会被执行了;在第二个if语句中,由于逻辑或左边的是"1",所以直接被阻断,也就是说逻辑或(||)后面的代码不会执行了;
三. 位运算符
位运算符有6种
位逻辑反 :~
位逻辑与 :&
位逻辑或 :|
位逻辑异或 :^
左移 :<<
右移 :>>
接下来我就来讲解一下这6中到底是个怎么回事呢?
首先我们要知道这个位运算都是来操作我们的二进制的
1. 位逻辑反 :顾名思义,就是将我们的二进制取反,0变成1,1变成0
2.位逻辑与 : 与逻辑与类似,只有两者都为1才会是1,如果有一个是0就是0
3.位逻辑或 : 与逻辑或类似,有一个为1就是1,如果两者都是0,结果就是0
4. 逻辑异或 :逻辑异或是如果两者相同就是0,不同也就是异结果是1。比如,1和1就是0,0和0就是0,1和0就是1
5. 左移 : 如果左移n,那么就是在一个二进制右边添加n个0,然后把最左边的n位去掉。
结论 :如果左移n位,这个数×
6. 右移 :如果右移n,那么就是在一个二进制左边添加n个0,然后把最右边的n位去掉
结论 :如果右移n为,这个数÷
四. 三目运算符
<表达式1> ? <表达式2> : <表达式3>
如果表达式1为真,那么输出表达式2;
如果表达式1为假,那么输出表达式3
话不多说,直接上案例
五.逗号运算符
可以看到z的右边有一大堆东西,但是z的值是由括号里面最后边决定的,在这里说白了就是z=x+y;