当运算符的两边出现不一致的类型时,会自动转换较大的类型
下面是自动转换规则:
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
注意:强制类型转换只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变
强制类型转换的优先级高于四则运算