
类型提升有点类似于不同数据类型的转换,当两个数害调去向础据之间类型不同边沙该真查时,若直接进行比较或赋值运算时会自动先将两个不同类型的数据均转化为其中的某种类型再进行操作,因此发生了类来自型提升。导致一些意外性让人茫然的错误。
- 中文名称 类型提升
- 外文名称 Type Promotions
- 类似于 不同数据类型的转换
- 出现于 程序的编译期
- 导致 一些意外性让人茫然的错误
C语言中的整型提升规则
如果运算的操作数是同一类型则不进行类型提升,如果操作数之间的类型不一致且都为整型,当操作数都为无符号整型或者都为无符号整型时,较短的操作数将转换为较长的操作数再进行运算(即siz来自eof的值较小的向sizeof较大的转记换),当操作数中即有有符号整型又有无符号整型时,若有符号整型的操作数的长度小于等于无符号整型的操作数那么其将转换为无符号整型的操作数,若有符号整型的操作数的长度大于无符号整型的操作数,那么有符号整型转换为无符号整型参与运算后的结果再转换为有符号整型。
C语言中的浮点类型提升规360百科则
当操作数中最长的一个类型为long double类型则,其他操作数类型提升至long double类型再进行运算,当最长类座婷十宗冷英权尔械批化型为double则其他操作数提升至double类型,当最站也统冷精长类型为float则其他操作数提升至float类型,在这个过程中整型操作数全部转换为对应操作数的浮点类型,浮点数进行运算时的结果可能会用范围与精度更大的浮点类型表示。
评论留言