算术转换 如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数转换为另外一个操作数的类型,否则操作就无法进行,下面的层次体系称为寻常算数转换(usual arithmetic conversion)。 long double double float unsinged long int long int unsigned int int 如果某个个操作数的类型再上面这个列表中的排名较低,那么它首先将转换为另外一个操作数的类型然后操作。 警告: int a=5000; int b=25; long c=a*b; 这个代码在32为的整数计算机上面没有问题,但是在16为的机器上面就会产生溢出。 解决方案就是执行乘法运算之前霸气中一个或者两个操作数转换为长整型。 long c=(long)a*b; 当整型转换为float型的值的时候,也有可能所示精度。float型值仅仅要求6为数字的精度,如果将一个超过6为数字的整型值赋值给一个float型的变量的时候,其结果可能是该整型的近似值。 当float型值转换为整型值的时候,小数部分被舍弃(不进行四舍五入)。如果浮点数的值过于庞大,无法容纳的与整型值中,那么其结果将是未定义的。