在一个算术表达式中,如果是相同类型的操作数,进行运算,那么,它的运算类型的结果究竟是什么呢?
C语言规定,相同类型的数据进行运算的结果类型与操作数的类型是相同的
例如整数除法,就是这样的一个非常典型的例子
被除数和除数都是整型,那么它们相除的结构,也是整型的
实际上它的小数部分是被舍弃掉了,
图
如果是不同类型的操作数进行运算,那么它的结果类型是什么呢?
C语言规定,不同类型的操作数,进行运算,它的结果类型就是操作数中取值范围较大的,那么种类型
例如浮点数除法
如果一个浮点数和一个整形术进行除法运算,C编译器会将所有类型的数,全部转化成取值较大的那个操作数的类型,这里都转化为浮点类型
然后在执行这个除法运算,这样就可以得到它的小数部分了
那么不同类型的操作数进行除法运算的时候,C编译器将所有的操作数,都转化为取值范围较大的那种操作数的类型,这个过程就称为类型提升
将字符型和短整型转化为基本整型,然后在进行计算
这个过程称为整数提升。
C99增强