C语言数据类型转换
目录 一、自动类型转换 1、操作数中没有浮点型数据时 2、操作数中有浮点型数据时 3、赋值运算符两侧的类型不一致时 4、右值超出左值类型范围时 二、强制类型转换 三、课后作业 四、版权声明 计算机进行算术运算时,要求各操作数的类型具有相同的大小(存储位数)及存储方式,不能将char 型( 1 字节)数据与 int 型(2、4或8字节)数据直接参与运算;由于存储方式的不同,也不能将 int 型数据与 double 型数据直接参与运算。 然而,由于 C语言的灵活性,在一个表达式或一条语句中,允许不同类型的数据混合运算。 C语言的灵活性与计算机的机械性是一对矛盾,如处理不好,将会产生错误结果。对于某些类型的转换编译器可隐式地自动进行,不需程序员干预,称这种转换为 自动类型转换 ;而有些类型转换需要程序员显式指定,这种类型转换称为 强制类型转换 。 一、自动类型转换 一个表达式中出现不同类型间的混合运算,较低类型将自动向较高类型转换。 不同数据类型之间的差别在于数据的取值范围和精度上,一般情况下,数据的取值范围越大、精度越高,其类型也越“高级”。 整型类型级别从低到高依次为: signed char->unsigned char->short->unsigned short->int->unsigned int->long->unsigned long 浮点型级别从低到高依次为: