1 算术运算符

注意:

1:%是算术运算符的重点,一般将某个数值控制在一定范围内

2:减号也是负号

3:取模运算要求左右两边操作数必须是整形数据

4:单目运算符:

++ — +(正号) -(负号)

a++(先赋值后自加)++a(先自加后赋值)

5:双目运算符

+ – * /

2 关系运算符

注意:

  • 关系运算符用于判断运算符两边的表达式是否满足给定的大小条件

  • 由关系运算符组成的表达式称为关系表达式,其值为布尔型

  • 判断是否相等是双等号==,而不是一个等号

3 逻辑运算符

1:逻辑运算符规则

  • 逻辑反:将逻辑真、假翻转,即真变假,假变真

  • 逻辑与:将两个关系表达式串联起来,当且仅当左右两个表达式都为真时,结果为真。

  • 逻辑或:将两个关系表达式并联起来,当且仅当左右两个表达式都为假时,结果为假。

2:特殊规则

  • 在逻辑与运算中,如果左边表达式的值为假,那么右边表达式将不被执行。

  • 在逻辑或运算中,如果左边表达式的值为真,那么右边表达式将不被执行。

3:计算机的惰性运算

4 位运算符

1 ~ : 按位取反

规则:单目运算符,数据将每一个bit位取反,1变0,0变1

2 & : 按位与(两个都为1,结果才为1 )

  • 1 & 1 == 1

  • 1 & 0 == 0

  • 0 & 0 == 0

  • 0 & 1 == 0

3 | : 按位或(两个都为1,结果才为1 )

  • 1 | 1 == 1

  • 1 | 0 == 1

  • 0 | 1 == 1

  • 0 | 0 == 0

4 ^ : 按位异或 (不同为1,相同为0 )

  • 1 ^ 0 == 1

  • 0 ^ 1 == 1

  • 0 ^ 0 == 0

  • 1 ^ 1 == 0

5 << : 左移,按bit位向左移动

1:无符号左移

2:有符号左移

6 >> : 右移

1:无符号右移

2:有符号右移

注意:

1.在进行移位运算的时候,凡是被移出去的位都丢弃,凡是空出来的都补零,移位运算是针对的是无符号整数。

2. 如果非要进行有符号的移位运算,那么左移的时候,空出来的补0,右移的时候,空出来不符号位(原码阶段);

5 特殊运算符

1:赋值运算符

  • 不能对常量赋值

  • 只能对变量赋值

  • 不能对数组赋值

  • 可以连续赋值,从右往左

  • 赋值运算符的左边(左操作数)必须是可写的地址空间

2:复合赋值符

  • 当左右两边有相同的操作数时,采用复合赋值符不仅直观,且能提高运算效率

  • 除了下述10个复合运算符之外,生造别的复合运算符是非法的

6 条件运算符(三目运算符,重点)

  • 唯一需要三个操作数的运算符

  • 语法:表达式1?表达式2:表达式3

  • 释义:当表达式1为真时,去表达式2,否则取表达式3

7 sizeof运算符

  • 含义:计算指定数据类型或者变量所占据内存的字节数

  • 语法:sizeof(类型)、sizeof(变量),计算变量的字节数时圆括号可以省略

8 return运算符

  • 含义:退出某个函数(如果退出的是主函数main,那么整个程序也就推出)

  • 语法:必须出现在函数体内,可以带函数对应类型的数据

9 逗号表达式

10 优先级与结合性

  • 当表达式出现不同的运算符时,根据优先级来决定谁先执行,比如先乘除后加减

  • 当表达式中出现多个相同优先级的运算符时,更具结合性决定谁先运行,比如从左到右