当运算符的两边出现不一致的类型时,会自动转换成较大的类型
char -> short -> int -> long -> long long
int -> float -> double
对于两边类型不一样的时候 int 会被转换 float,C语言会自动转换
对于 printf,任何小于 int 的类型都会被转换成 int;float会被转换成 double
scanf 不会,要输入 short 需要 %hd
强制类型转换
要把一个变量强制转换成另一个类型(通常是较小的类型),需要:
(类型)值
比如:
(int)10.2
(short)32
注意这时候的安全性,小的变量不总能表达大的量
(short)32768
强制类型转换的优先级高于四则运算
int a = 5;
int b = 6;
double d = (double)(a / b);计算 a / b 然后转成 double
如果要先转类型 就得把
(a / b)的括号拿掉