[
c
]
自动类型转换
- 当运算符的两边出现不一致的类型时,会自动转换成较大的类型
大的意思是能表达的数的范围更大
char -> short -> int -> long -> long long
int -> float -> double
- 对于printf,任何小于int的类型会被转换成int;float会被转换成double
- 但是scanf不会,要输入short,需要%hd
强制类型转换
-
要把一个量强制转换成另一个类型(通常是较小的类型),需要:(类型)值
-
比如:(int)10.2;(short)32
-
注意这时候的安全性,小的变量不总能表达大的量,如:(short)32768
只是从那个变量计算出了一个新的类型的值,它并不改变那个变量,无论是值还是类型都不改变
-
强制类型转换的优先级高于四则运算