继上一篇整数提升后我们继续聊聊算数转换,首先有个问题就是难道除了char, short之外,其他的如float, double,long double, unsigned long int , int ,long int都不能转换吗,其实不然,这就牵扯到了算数转换。
转换顺序:
long double
double
float
unsigned long int
long int
unsigned int
int
把精度小的转换成精度大的,由小往上进行转换。
例如:
int main()
{
int a = 4;
float f = 4.5f;
float r = a + f;//所以a会转换成float类型
printf("%f", r);
return 0;
}
打印8.5;