强制类型转换
有时需要把浮点数的小数部分切掉来变成整数,或是把整型变为浮点型来方便做除法(因为整数除以整数在计算机中视为整除操作,不会自动变为浮点数),或是在其他很多情况下,都会要用到强制类型转换,即把一种数据类型转换成另一种数据类型。
强制类型转换的格式如下:
(新类型名)变量名
下面给出一个例子来说明:
#include<stdio.h>
int main(){
double r =12.56;
int a = 3,b = 5;
printf("%d\n",(int)r);
printf("%d\n",a/b);
printf("%.1f",(double)a/(double)b);
return 0;
}
输出结果:
12
0
0.6
这个例子使用了“(int)r”来把r强制转换成int型并输出,使用了“(double)a”把a强制转换成浮点型来做除法,输出格式中的“%.1f”是指保留一位小数输出。
注意:如果讲一个类型的变量赋值给另一个类型的变量,却没有写强制类型转换操作,那么编译器将会自动进行转换。但是这并不是说任何时候都可以不用写强制类型转换,因为如果是在计算的过程中需要转换类型,那么就不能等它算完再赋值的时候转换。