9.自动类型转换
数据类型存在自动转换的情况,自动转换发生在不同数据类型运算时,在编译的时候自动完成。
自动转换遵循的规则就好比小盒子可以放进大盒子里面一样,下图表示了类型自动转换的规则。
char类型数据转换为int类型数据遵循ASCII码中的对应值。
注:字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换
10.强制类型转换
强制类型转换是通过定义类型转换运算来实现的。其一般形式为: (数据类型) (表达式)
其作用是把表达式的运算结果强制转换成类型说明符所表示的类型。
如:double num=1.23456;
int num1=(int)num;
printf("%d\n,"num1);
输出结果:1
在使用强制转换时应注意以下问题:
1、数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y相加了。
2、转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。
3、强制转换后的运算结果不遵循四舍五入原则。