首页 理论教育 类型转换:显式转换与强制转换表达式

类型转换:显式转换与强制转换表达式

时间:2023-10-21 理论教育 版权反馈
【摘要】:显式转换可在强制转换表达式中出现;显式转换包括所有隐式转换,就意味着允许使用冗余的强制转换表达式。不是隐式转换的显式转换是这样的一类转换:他们不能保证总是成功,知道有可能丢失信息,变换前后的类型显著不同,以至要使用显式表达式。

类型转换:显式转换与强制转换表达式

我们在控制台输入输出时,需要输入一个字符,通过我们的控制台输入时它会被认为是一个整型,此时我们需要把此整型转化为我们想要的实际字符。

转换(conversion)使一种类型的表达式可以被视为另一种类型。转换可以是隐式的(implicit)或显式的(explicit),这将确定是否学习显式的强制转换。例如,从int类型到long类型的转换是隐式的,因此,int类型的表达式可隐式的按long类型处理。从long类型到int类型的反向转换是显式的,因此需要显式的强制转换。

隐式转换:主要有以下几种隐式转换:标识转换、隐式数值转换、隐式枚举转换、隐式引用转换、隐式常量表达式转换和用户定义的隐式转换。隐式转换可在多种情况下发生,如:函数成员调用、强制转换表达式和赋值。预定义的隐式转换总是会成功,从来不会导致引发异常。正确设计的用户定义隐式转换同样应表现出这些特性。

显式转换:主要有以下几种显式转换:所有隐式转换、显式数值转换、显式枚举转换、显式引用转换、显式接口转换和用户定义的显式转换。显式转换可在强制转换表达式中出现;显式转换包括所有隐式转换,就意味着允许使用冗余的强制转换表达式。不是隐式转换的显式转换是这样的一类转换:他们不能保证总是成功,知道有可能丢失信息,变换前后的类型显著不同,以至要使用显式表达式。

下面是一个类型转换的示例:

int i=10;

long l=i;//隐式转换(www.xing528.com)

int j=(int)l;//显式转换

还有,我们在进行表达式运算的时候也会碰到类型的转换,如下的运算:

float f;

f=10/3;

这个时候f的值是多少?我们用类型转换来分析一下:10和3都是int类型的,那么它们的运算结果也是int类型的值为3,然后把int类型的值3赋值给一个float类型的变量f,所以f的值为3.0。

还有其他很多地方的运算都会碰到该问题,所以我们一定要注意类型的转换问题。

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

我要反馈