当运算符的两边出现不一致的类型时,会自动转换较大的类型

下面是自动转换规则:

char---->short---->int---->long---->long long

int---->float----->double

注意:

  • 对于printf,任何小于int的类型会被转换成int; float会被转换成double
  • 但是scanf不会,要输入short,需要%hd

强制类型转换

  • 要把一个量强制1转换成另一个类型(通常是较小的类型),需要:(类型)值
  • 比如:(int)10.2,(short)32
  • 注意这时候的安全性,小的变量不总能表达大的量  (short)32768这是不可以的,结果会是-32768

注意:强制类型转换只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变

强制类型转换的优先级高于四则运算