c语言类型转换
在c语言中,不同类型的数据可以进行混合运算。但这些数据必须首先要转换成同一类型,然后再做运算。数据类型的转换包括自动转换和强制转换。自动转换由c语言编译系统自动完成,强制转换则由特定的运算完成。
-
自动类型转换
非赋值运算的类型转换:水平方向上char,short转换成int;unsigned short转换成unsigned……垂直方向上转换成这些数据中级别最高的类型
赋值运算的类型转换:赋值运算时,将赋值号右侧表达式的类型自动转化成赋值号左侧变量的类型。例如设变量x的类型为double,计算表达式x=2,运算时,先将int型常量2变成double型常量2.0,然后再赋值给x,结果是double型。
注:如果赋值运算左边的精度小于右边的精度,则精度会降低。 -
强制类型转换
格式:(类型名) 表达式;
eg:设i为int型变量,(double)i将i的值转换成了double型,
注:无论是强制类型转换还是自动类型转换,都是为了本次运算的需要,对数据的类型进行临时转换,并没有改变原来数据的定义。