目录
😢前言
上期我们对数组的内容进行了具体的讲解,详细的分析了一维数组和二维数组。本期内容我们将对操作符开始动刀了,在这里会对操作符中的算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用 函数调用和结构成员进行具体的讲解,其实一些细微的知识也是普及到的,大家可以准备好补充水分了,干货满满。
😫1. 操作符分类
操作符分为10大类:算术操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用 函数调用和结构成员。操作符我们分两期讲,这期我们从算术操作符讲到关系操作符。
🥱2. 算术操作符
+ - * / %
算术操作符就是我们数学中的加减乘除在加上一个取模(取余数)。对于算数操作符我们要记住几点:
1. 除了%操作符外,其他几个算术操作符都可以用于正数和浮点数。
2. 对于/操作符如果两个操作数都是整数,执行整数除法,但只要有一个操作数为浮点数则执行浮点数除法(浮点数就是带有小数的数)。
3. %操作符的两个操作数必须为整数,返回的是整除后的余数。
😈3. 移位操作符
<< :左移操作符
>> :游戏操作符
注: 移位操作符的操作数只能是整数
在开始讲位移操作符之前我们先来了解一下二进制的一些内容:
在计算机中,二进制由三种表达形式:原码,反码,补码。在正整数中原码反码,补码相同。负数中反码是原码的相反数,补码是原码加一。
注:
1. 整数在内存中存储的时补码
2. 计算机计算也是使用补码来计算
警告:对于移位操作符,不要移动负数位,这个时标准未定义的
🫥3.1 左移操作符
移位规则:
左边抛弃,右边补零
🙃3.2 右移操作符
移位规则有两种:
1. 逻辑位移: 左边补0,右边丢弃
2. 算术位移: 左边补符号位,右边丢弃
🫣4. 位操作符
& I ^
&: 按位与,同1为1,有0为0
|:按位或,有1为1,同0为0
^:按位异或,相同为0,相异为1
😵💫5. 赋值操作符、
=
赋值操作符is very good,它可以给自己重新赋值,让你改变之前不满意的值。
除此之外,还有一些复合赋值符
+= -= *= /= >>= <<= &= |=
这些运算赋都可以写成复合的效果,比如:
😴6. 单目操作符
🥶6.1 单目操作符的介绍
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度
~ 对一个数的二进制取反
-- 前置,后置--
++ 前置,后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
这里我们介绍几个不好理解的:
🤯6.2 sizeof与数组
在函数的那一章里,我们就提起了当数组为参数传给函数时,用sizeof求得的是一个元素的大小。
前置++,前置--,后置++,后置--
7. 关系操作符
>
>=
<
>=
!=
==
上面大部分和数学中的关系符号一样,其中不同的只有!=:不等于,==:等于。需要注意的是:在编程中,==和=不要搞错了,两个意思完全不一样。
🤓总结
到这里,我们已经将操作符中的算术,移位,位,赋值,单目,关系操作符已经介绍完了。下期我们将会对逻辑操作符,条件操作符,逗号表达式,下标引用,函数调用和结构体成员,表达式求值进行讲解。欲知后事如何,请听下回分解。