3.4自动类型转换与强制转换运算符
3.4.1表达式中的自动类型转换 C编译器在对操作数进行运算之前将所有的操作数都转换成范围较大的操作数类型,称为类型的提升。 3.4.2赋值中的自动类型转换 /*若赋值运算符左侧变量类型和右侧变量类型不一致,将右侧表达式的值转换成左侧变量的类型*/ # include <stdio.h> int main ( ) { int n = 256 ; float f = 3.6 ; double d = 2.5 ; n = f ; f = n ; d = f ; printf ( "n=%d\n" , n ) ; printf ( "f=%f\n" , f ) ; printf ( "d=%f\n" , d ) ; } 输出: n = 3 f = 3.000000 d = 3.000000 3.4.3强制类型转换运算符 /*(类型)表达式*/ # include <stdio.h> int main ( ) { int m = 5 ; printf ( "m/2=%d\n" , m / 2 ) ; printf ( "(float)(m/2)=%f\n" , ( float ) ( m / 2 ) ) ; printf ( "(float)m/2=%f\n" , ( float ) m / 2 ) ; printf ( "m=%d\n" , m ) ; } 输出: m / 2 = 2 (