首页 百科知识 强制类型转换后的变量类型是

强制类型转换后的变量类型是

时间:2022-10-17 百科知识 版权反馈
【摘要】:就是说,在进行强制类型转换时,得到的是一个所需类型的中间变量,而原来变量的类型并未发生变化。在程序中利用强制类型转换可以把已有的变量转换为所需的类型,这样避免在程序中多定义变量,节约内存空间。如果必须在一个表达式中使用多种数据类型参与运算,应使用强制类型转换。

2.5.2 强制类型转换

在2.4节中已简单地介绍了强制类型转换运算符的使用,其强制类型转换的格式为:

(数据类型名)(表达式)

例如:

img129

注意,表达式应该用括号括起来。如果写成:

  (int)x+y

则表示将x转换成int型后与y相加。

但应注意:这是类型的临时转换方法。就是说,在进行强制类型转换时,得到的是一个所需类型的中间变量,而原来变量的类型并未发生变化。例如:

  (int)a            (不要写成int(a))

如果a原指定为float型,进行强制类型转换后得到一个int型的中间变量,它的值等于a的整数部分,而a的类型不变(仍为float型)。见例2-3.cpp。

在程序中利用强制类型转换可以把已有的变量转换为所需的类型,这样避免在程序中多定义变量,节约内存空间。比如,sqrt()函数要求参数必须是双精度型浮点数。假设原来定义变量n是int型,则调用sqrt()时可用sqrt((double)n);把n的数据类型强制转换成double型。

例2-3 强制类型转换

img130

运行结果如下:

a=57.560000,b=57

a的类型仍为float型,值仍等于57.56。

从上可知,有两种类型转换,一种是在运算时不必用户指定,系统自动进行的类型转换,如10+4.8;一种是强制类型转换,当自动类型转换不能实现目的时,用强制类型转换,如“%”运算符要求其两侧均为整型量,若i为float型,则“i%45”不合法,必须对i进行强制类型转换:“(int)i%45”。因为强制类型转换运算优先于%运算,所以先进行(int)i的运算,得到一个整型的中间变量,然后再对45求模。

在编写程序时应尽量避免在一个表达式中使用多种数据类型参与运算。如果必须在一个表达式中使用多种数据类型参与运算,应使用强制类型转换。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈