不同数据类型进行混合运算时的转换规则:生成值的结果为参加运算的所有数据的结构类型的其中一种,至于为那种究竟为哪种类型请参看:
(高) double<-float
|
long
|
unsigned
|
(低) int<-char、short
其中横向箭头表示必定转换,纵向表示当运算对象为不同类型时转换的方向,箭头方向只能由低向高转换。
赋值时可以进行任意转换,但有时会丢失数据(和java有区别)。
两个整数相除时,其值直接丢弃小数点后面的部分,但舍去方向不固定,因编译器而定。
字符转换成整数遵循ASC2编码系统。
关于除法的问题,只有这样进行强制转换才能不丢弃小说点后的部分(与java一样):
float i;
i=((float)1)/((float)3);
或
i=(float)1/(float)/3;
或
i=(float)1/3;
(以上为本人的一些心得,在以后的学习过程中如果遇到一些新的问题还会及时更新)