目录
1.算术操作符
1)取商操作符:/
2)取模操作符:%
2.移位操作符
1)右移操作符 >>
2)左移操作符 <<
3.位操作符
1)按位与 :&
2)按位或 :|
3)按位异或:^
4.赋值操作符
5.单目操作符
1)非:!
2)解引用操作符:* 取地址操作符:&
3)sizeof
4)按(二进制)位取反: ~
5)前置、后置++ --
6.关系操作符
7.逻辑操作符
1)逻辑与: &&
2)逻辑或: ||
8.条件操作符
9.逗号表达式
10.下标引用操作符: [ ]
11.函数操作符: ( )
这里只介绍 / 和 %这两个操作符
除法运算符是取的是商的值,什么意思呢? 打个比方,5 / 2 商2 余 1,所以输出的结果是2,我们看代码运行结果。
这个操作符是取的除法的余数, 打个比方就是 5 % 2 是商 2 余 1, 即输出结果是 1 我们来看代码运行结果 这里注意取模两边的数必须都为整数,不是浮点数。
无论是左移还是右移都是移动的是二进制位
补充小知识:补码 = 反码 + 1
右移操作符又分两种,我们来举个例子,将一个整型的 16 进行向右移位,得出的两种情况。我们知道 int 类型的空间大小是32个比特位,16用二进制表示如下图
①算术右移:右边丢弃,左边补符号位。上图将右边丢弃一个0,由于是正数所以补0(负数补1)
②逻辑右移:右边丢弃,左边补0。上图将右边丢弃一个0,左边还是补0。如果原来的是-16的话进行逻辑右移得出的结果就是 8
左移:左边丢弃,右边补0
注意:位操作符的操作数是能是整数
按二进制位进行操作什么意思呢,二进制位置对应的地方都为1,才会被改为1,若有一个1和0或者都是0,都将被改成0,如下图红色部分。
代码输出结果
二进制位置对应的地方都为0,将会改位0。若有一个1,即被改为1。如下图所示
代码输出结果:
特点:不需要中间变量,就可得到两个数中的任意一个。(如5 和 3的异或结果是6,我们可以通过6 去分别与5和3异或得到 3和5)
对应的二进制位 相同为0,相异为1,如下图所示
代码输出结果:
只有一个操作数,通常 a+b +两边有两个操作数,单目就只有一个 例如,a++,!a,等等。
把假的变成真的,真的变成假的,例如 a = 10; !a == 0。如下图
通常这两个是一起用的取地址就是取变量的地址,而解引用是将地址上存的值拿来用
例如:
sizeof 计算变量(数组也算变量)所占内存空间的大小(以字节为单位),例如:
补充:指针大小,是根据电脑是64还是32决定的,64计算的结果是8,32计算的结果是4。传数组名时候传的是首元素地址,相当于是一个指针接收
将补码中的0改为1,1改为0。例如:
两边同时为真结果才是真,否则为假
补充:左边如果为假,右边都不会再算了
两边同时为假结果才为假,否则为真
补充:左边如果为真,右边不会算
exp1 ? exp2 : exp3
表达式1的结果为真,整个表达式的结果为表达式2的结果,表达式1为假,整个表达式的结果为表达式3的结果,如下图
从左向右依此执行,最后整个表达式的结果是最后一个表达式的结果。如下图
操作数:一个数组名 + 一个索引值; 如 : arr [ 10 ] 访问的是arr下标为10的元素
接受一个或者多个操作数,第一个操作数是函数名,剩余的是传参的操作数。