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

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

时间:2023-10-16 百科知识 版权反馈
【摘要】:如果fnumb为float类型,进行强制类型转换后得到一个int型的中间变量,它的值等于fnumb的整数部分,而fnumb的类型不变。在程序中利用强制类型转换可以将已有的变量的值转换为所需的类型的值,这样避免在程序中多定义变量,节约内存空间。如果必须在一个表达式中使用多种数据类型参与运算,应使用强制类型转换。

2.5.2 强制类型转换

在2.4.8小节中已简单地介绍了强制类型转换运算符的使用。强制类型转换的格式为

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

例如:

  (double)a           /* 将a的值转换成double型值 */

  (int)( x+y)          /* 将x+y的值转换成int型值 */

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

  (int)x+y

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

注意:在进行强制类型转换时,得到的是一个所需类型的中间值,而原来变量的类型和值并未发生变化。例如:

(int)fnumb

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

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

例2-3 强制类型转换

img76

img77

运行结果为

  fnumb=57.560000,b=57

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

C语言提供两种类型转换,一种是在运算时不必用户指定,系统自动进行的类型转换,需要遵循一定的转换规则,如10+4.8;另一种是强制类型转换,将按照用户指定类型进行转换,例如

(int)i%45强制类型转换运算优先于%运算,所以先进行(int)i的运算,得到一个整型值,然后再对45求余数。

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

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

我要反馈