[例1]C语言所采用的类型转换方式:
int a = 10;
int b = 3;
double result = (double)a / (double)b;
例1中将整型变量a和b转换为双精度浮点型,然后相除。在C++语言中,我们可以采用static_cast关键字来进行强制类型转换,如下所示。
[例2]static_cast关键字的使用:
int a = 10;
int b = 3;
double result = static_cast<double>(a) / static_cast<double>(b);
在本例中同样是将整型变量a转换为双精度浮点型。采用static_cast进行强制数据类型转换时,将想要转换成的数据类型放到尖括号中,将待转换的变量或表达式放在元括号中,其格式可以概括为如下形式:
static_cast <类型说明符> (变量或表达式)
问题来了,为什么C++ 不继续沿用double result = (double)a / (double)b;,而用double result = static_cast<double>(a) / static_cast<double>(b);
后面的那个不是很繁琐吗?
[例1]C语言所采用的类型转换方式: int a = 10; int b = 3; double result = (double)a / (double)b; 例1中将整型变量a和b转换为双精度浮点型,然后相除。在C++语言中,我们可以采用static_cast关键字来进行强制类型转换,如下所示。 [例2]static_cast关键字的使用: int a = 10; int b = 3; double result = static_cast(a) / static_cast<