首页 > 代码库 > 读书笔记:C++ Primer系列(12)—— 类型转换

读书笔记:C++ Primer系列(12)—— 类型转换

题记:类型转换就是将给定类型的表达式转换为另一种类型。C++中的转型可分为两种:隐式类型转换和显式类型转换。

 

隐式转换

隐式转换不需要任何转换运算符,编译器会自动根据类型兼容性进行不同类型之间的转换。一般情况下,在C/C++中这种转换多出现在基本数值类型上,其基本原则就是所需内存小的类型可以直接转换成内存大相同的或者。

例如:

int a=0;

a=3.1415+3;

运行结果为:6

解释:

  上述加法操作中,其操作数是两个不同类型的值:3.1415是double类型的字面值常量,3是int类型的字面值常量。C++并不是把两个不同类型的值直接相加,而是要通过转换为同一种数据类型后再相加。

  C++定义了算术类型之间的内置转换以尽可能防止精度损失,通常,如果表达式含有整型和浮点型,则将整型操作数转换为浮点型。上例中,整数3被转换为double类型后,执行浮点类型的加法操作,得double类型的结果6.1415,最后将double类型的值赋给整型变量a。double类型向int类型转换自动按截尾形式进行,舍弃小数部分。