类型转换
隐式转换:自动执行的转换
- 算数转换:就是把一种算数类型转换为另一种算数类型
- 数组转换为指针:在大多数用到数组的表达式,数组自动转换为数组首元素的指针
- 指针的转换:常量整数值0或字面值nullptr能转换成任意指针类型;指向任意非常量的指针能转换为void*;指向任意对象的指针可以转换为const void*。
- 转换成布尔类型
- 转换成常量:允许将指向非常量的指针转换成指向相应的常量类型的指针
显式转换
cast-name<type>(expression)
其中type是转换的目标类型而expression为要转换的值
- static-cast:任何具有明确定义的转换类型,只要不包含底层const,都可以使用
- const-cast:只能改变运算对象的底层const,可以将常量对象转换为非常量对象
旧式的强制转换类型:
type(expr);
(type) expr;