如果运算符两边的数据类型不统一,则较低类型的需要转化成较高类型,再参加运算。
运算符的高低如下:
char,short→int→unsigned→long→double←float
#include<stdio.h>
#include<stdlib.h>
int main()
{
float f=5.97;
printf("(int)f=%d\n",(int)f);
printf("f=%f\n",f);
return 0;
}
运行结果:
(int)f=5
f=5.97
强制类型转换的格式如下:
(类型)(数据)
如:(int)(x+y)
整形转化为浮点型时,数值不变,形式改变为浮点型;
浮点型转化为整形时,舍去小数点后面的内容,整数部分不变。
float型转化为double型时,数值不变,形式改变为浮点型;
double型转化为float型时,通过截尾实现,不过截尾前要四舍五入
int型转化为char型时,保留低8位,高位舍去;
long型转化为int型时,保留低16位,高位舍去;