C语言规定,不同类型的数据进行运算时要先转换成相同类型的数据才能进行运算
数据类型转换就是将数据(变量、数值、表达式的结果等)从一种类型转换为另一种类型
数据类型的各种转换只影响表达式的运算结果,并不改变原变量的定义类型,并且其数据值也不会发生任何改变
自动类型转换
自动类型转换就是编译器默默地、隐式地、偷偷地进行的数据类型转换
这种转换不需要程序员干预,会由C语言编译系统自动完成
转换规则是:
把占用内存空间少的(低级)类型向占用空间多的(高级)类型转换,以保证运算的精度
- 图中的纵向箭头表示必定的转换
- 图中的横向箭头表示当经过纵向的转换后,进行运算的数据类型仍然不同时进行的转换方式
例:若有定义“double d=153;int i=10;float f=3.8;”,则表达式d+’a’+i*d/f的值的类型是___。
分析:
- 将int型变量i和float型变量f转换为double型后,进行i*d/f的运算,结果为double型。
- 将char型常量’a’转换为int型ÿ