今天早上睡到7点17了,还不错。中午回去睡了半个小时。下午没打瞌睡,看来是睡够了。
下面笔记:(无语了,手抖把自己笔记删除了,还按了保存退出)
7.1 运算符基础
运算符: 也叫操作符,是一种特殊的符号,用以用于数据的运算、赋值和比较等。
运算数: 也叫操作数,使用运算符进行运算的数据。
表达式: 运算符、运算数可以共同组成一个表达式,表达式一定是有值的。一个变量、一个常量也是表达式。
运算符4要素: 运算符的功能、操作数个数、所组成的表达式的值、有无副作用。
运算符分类(按操作数个数): 一元运算符、二元运算符、三元运算符。
运算符分类(按功能): 算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其他运算符
7.2 算术运算符
运算符 | 描述 | 操作数个数 | 所组成表达式的值 | 有无副作用 |
---|---|---|---|---|
+ |
正号 | 1 | 操作数的值就是表达式的值 | 无 |
- |
负号 | 1 | 操作数符号取反作为表达式的值 | 无 |
+ |
加号 | 2 | 两个操作数相加 | 无 |
- |
减号 | 2 | 两个操作数相减 | 无 |
* |
乘号 | 2 | 两个操作数相乘 | 无 |
/ |
除号 | 2 | 两个操作数相除 | 无 |
% |
取余(取模) | 2 | 两个操作数相除得到的余数 | 无 |
++ |
自增 | 1 | 运算符在前:操作数自增后的值作为表达式值 运算符在后:操作数自增前的值作为表达式值 |
有 |
-- |
自减 | 1 | 运算符在前:操作数自减后的值作为表达式值 运算符在后:操作数自减前的值作为表达式值 |
有 |
1. 正号、负号
2. 加、减、乘、除
3. 取余(取模)
① 取余运算的操作数必须是整数
② 取余运算的结果的符号与左操作数一致
4. 自增、自减
注意:被运算符产生副作用的操作数必须是变量的形式!
7.2 关系(比较)运算符
运算符 | 描述 | 操作数个数 | 所组成表达式的值 | 有无副作用 |
---|---|---|---|---|
> |
大于 | 2 | 0或1 | 无 |
>= |
大于等于 | 2 | 0或1 | 无 |
< |
小于 | 2 | 0或1 | 无 |
<= |
小于等于 | 2 | 0或1 | 无 |
== |
相等 | 2 | 0或1 | 无 |
!= |
不相等 | 2 | 0或1 | 无 |
7.3 逻辑运算符
运算符 | 描述 | 操作数个数 | 所组成表达式的值 | 有无副作用 | ||
---|---|---|---|---|---|---|
&& |
逻辑与 | 2 | 两个操作数都为真,表达式的值才为真。 | 无 | ||
` | ` | 逻辑或 | 2 | 只要一个操作数为真,表达式就为真 | 无 | |
! |
逻辑非 | 1 | 操作数为true,表达式是0;操作数为false,表达式是1 | 无 |
逻辑与短路:第一个操作数为假,第二个操作数直接不执行,整个表达式的值是 0。
逻辑或短路:第一个操作数为真,跳过第二个操作数,表达式为真。
7.4 位运算符
运算符 | 描述 | 操作数个数 | 所组成表达式的值 | 有无副作用 | |
---|---|---|---|---|---|
& |
按位与 | 2 | 无 | ||
` | ` | 按位或 | 2 | 无 | |
^ |
按位异或 | 2 | 无 | ||
~ |
按位非 | 2 | 无 | ||
<< |
按位左移 | 2 | 无 | ||
>> |
按位右移 | 2 | 无 |
注意:操作数进行位运算的时候,以它的补码形式进行运算。
7.5 赋值运算符
运算符 | 描述 | 操作数个数 | 所组成表达式的值 | 有无副作用 | |
---|---|---|---|---|---|
= |
赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
+= |
相加赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
-= |
相减赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
*= |
相乘赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
/= |
相除赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
%= |
取余赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
&= |
按位与赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
` | =` | 按位或赋值 | 2 | 左值被重新赋值之后的值 | 有 |
^= |
按位异或赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
<<= |
按位左移赋值 | 2 | 左值被重新赋值之后的值 | 有 | |
>>= |
按位右移赋值 | 2 | 左值被重新赋值之后的值 | 有 |
注意:赋值运算符会对左值起副作用,所以左值必须是变量的形式; 右值不会有副作用,可以是变量、常量、表达式。