[toc]
# 浮点常量
与整数相比 优点:
- 他们可以表示整数之间的值 - 表示范围大很多 缺点:
- 浮点运算比整数慢 - 精度会降低
# 整型
int 运算最快
# 表达式类型提升
Prime Plus 中说,这个类型提升的操作是通过一个叫 "校验表" 来进行的 C++11 版本的校验表:
- 如果有一个操作数的类型是 long double, 则将另一个操作数转换为 long double
- 否则,如果有一个操作数的类型是 double, 则将另一个操作数转换为 double
- 否则,如果有一个操作数的类型是 float, 则将另一个操作数转换为 float
- 否则,说明操作数都是整型,因此只执行整型提升
- 在这种情况下,如果两个操作数都是有符号或者无符号的,且其中一个操作数的级别比另一个低,则转换为级别高的类型
- 如果一个操作数为有符号的,另一个操作数为无符号的,且无符号操作数的级别比有符号操作数高,则将有符号操作数转换为无符号操作数所属的类型
- 否则,如果有符号类型课表是无符号类型的所有可能值,则将无符号操作数转换为有符号操作数所属的类型
- 否则,将两个操作数都转换为有符号类型的无符号版本
# 强制类型转换
C++ 引入了四个强制类型转换的运算符,对它们的使用要求更为严格,
# auto, 类型推断
auto 一般在使用 stl 的时候优势非常明显,比如:
1 | std::vector<double> scores; |
可以写成
1 | std::vector<double> scores; |