一句话理解
隐式转换是编译器自动改类型,你没写转换符号。
为什么要学
int 和 double 一起算、bool 当整数,都会发生。不知道就会 silently 出错。
讲解
常见:int 遇上 double 会变成 double 再算;true 变成 1。
危险:把 double 赋给 int 会丢小数;把过大的 long long 赋给 int 会截断。
能写清楚就写清楚。不要靠隐式转换“碰巧对”。
例子
int x = 1.9; // x 变成 1
double y = 2; // y 变成 2.0
int z = true; // z 变成 1
三处都没写转换符,但类型已经变了。第一处丢了 0.9。
常见错误
- 把 1.5 赋给 int 还期望它是 2。
- 在条件里写
if (n = 1),赋值结果被当成真假。