运算符分为5种类型:算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符。
1、算术运算符:
+ 运算符,执行加法运算,是二元运算符
- 运算符,执行减法运算,是二元运算符
* 运算符,执行乘法运算,是二元运算符
/ 运算符,执行除法运算,是二元运算符
%运算符,执行求模运算,是二元运算符
*,-,+,/,%,运算优先级,遵循代数优先级,先乘除后加减
当一个操作数位于两个运算符中间,运算符优先级相同时,就需要根据运算符的结合性,来决定运算执行顺序;
C++中的结合性分为从左到右和从右到左两种方式,加减乘除算法都是从左到右的结合性。
除法运算符的注意点:
除法运算符的行为取决于操作数的类型,如果两个操作数都是整数,则C++将执行整数除法,这就是意味着结果的小数部分会被丢弃。
2、关系运算符:
小于<,小于等于 <=,等于 ==,大于 >,大于等于 >=, 不等于 !=
对于所有关系表达式,比较结果为真则为true,比较结果为假则为false。
3、赋值运算符:
赋值运算符是二元运算符
赋值运算符左边的操作数称为左值
赋值运算符右边的操作数称为右值
右值是临时对象,左值才会是最终结果,所以如果将赋值表达式放在条件语句中,只看最终左值的结果作为条件判断。
组合赋值运算符,如:
+=,-=,*=,%=,/=
4、逻辑运算符
逻辑或 || , 逻辑与 && , 逻辑非 !
真值表
5、位运算符
C++提供六种位运算符:
<< 左移, 一元运算符,如: value << a 就是将value值左移a位
>> 右移, 一元运算符,如: value >> a 就是讲value值右移a位
~ 位非 ,一元运算符, 将所有1变成0,0变成1
& 位与,二元运算符,都为1,则结果为1,其余都为0
| 位或,二元运算符, 都为0,则结果为0,其余都为1
^ 异或,二元运算符,都为0或都为1则结果为0,否则为1
6、下标运算符 [ ]:
下标运算符通常用于访问数组元素
7、函数调用运算符()
函数调用运算符()被重载用于类的对象,当重载()时,并不是创造了一种新的调用函数方式,而是创建一个可以传递任意数目参数的运算符函数。
如果通过类重载了函数调用运算符(),则我们可以像使用函数一样使用该类的对象,也称作函数对象。
8、范围解析运算符::
9、成员访问运算符 . 和 ->
10、指针运算符 * 和 &
11、条件运算符 ?
条件运算符是C++中唯一的三元运算符
如: val<0? -val:val ; 最终的结果就是为-val或val。
C++的基本类型分为两种:存储为整数的值,存储为浮点格式的值。
字符是通过数值编码标识,IO系统决定了编码是被解释为字符还是数字。