2.5.2 算术运算符和算术表达式(3)
(2) 强制类型转换
虽然隐式转换有它一定的优越性,但是由于程序员无法控制表达式的类型,进而可能影响表达式最终结果的精度。为了解决类似的问题以及提高程序设计的灵活性,C++语言提供了强制类型转换手段,也称为显式类型转换。显式类型转换是由程序员显式指出的类型转换,转换形式有两种:
- 类型名(表达式)
- (类型名)表达式
这里的"类型名"是任何合法的C++数据类型,如float、int等。通过类型的显式转换可以把表达式的运算结果强制转换成类型声明符所表示的类型。
如下所示:
- double f=3.6;
- int n=(int)f; //把f的双精度类型结果转换为整型
这样n为3。强制类型转换是通过类型转换运算来实现的。
在使用强制转换时应注意以下问题。
① 类型声明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加。
② 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,不改变原来对该变量定义的类型。