这个层次可以导致了一些有趣的问题。例如,您可能希望表达对5U - 10 - 5(5U意味着5为无符号整数)。但在这种情况下,符号整数(10)提高到一个无符号整数,和这个表达式的结果是无符号整数
许多混合转换按预期工作。例如,int值= 10×2.7的结果27。10是提升到一个浮动,10×2.7的值为27,和27被截断为整数(即编译器会抱怨)。
许多新的程序员尝试这样的事情:浮fvalue = 10 / 4;。然而,因为10和4都是整数,不提倡发生。整数除法是10 / 4的表现,导致2的价值,然后被隐式地转换为2分fvalue!
在你使用的文字值的情况下(如10,或4),更换一个或两个整数的值与一个浮点字面量的值(10或4)将导致两个操作数被转换为浮点值,和师将完成使用浮点运算。
但是如果你使用变量?考虑到这种情况下:
1
2
3
|
int
nValue1 = 10;
int
nValue2 = 4;
float
fValue = nValue1 / nValue2;
|
值将以2的值。我们如何告诉编译器,我们想使用浮点除法代替整数除法?答案是用铸铁。
铸造
铸造是一个请求由程序员来做一个显式的类型转换。在标准C++编程,强制转换是通过()操作符,同类型的名称将在。比如说呢。
1
2
3
|
int
nValue1 = 10;
int
nValue2 = 4;
float
fValue = (
float
)nValue1 / nValue2;
|
在上面的程序,我们使用一个浮动铸告诉编译器促进nvalue1一个浮点值。因为nvalue1是浮点值,nvalue2将被提升到一个浮点值为好,和师将完成使用浮点除法代替整数除法!
C++还将让你使用C风格的函数调用铸有更多的语法:
1
2
3
|
int
nValue1 = 10;
int
nValue2 = 4;
float
fValue =
float
(nValue1) / nValue2;
|