流心
发布于 2024-04-29 / 4 阅读
0

自动类型转换

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

  • 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) 的括号拿掉