1.隐式类型转换(自动完成转换)
1)算数转换
(+,-,*,/,%)
char,int,long,long long,float,double
15 + 3.14 => 15.0+3.14
小范围数据类型和大范围数据类型进行算数运算时,为了不丢失精度,会将小范围转换成大范围。存储结构将改变。常量变量都是如此。
2)赋值转换
3)输出转换(C语言)
305 49('1')
printf("%c", 255+50) // 1 0011 0001 char类型 --> 0011 0001
printf("%d" ,255+50) // 305
int类型数据,按照%f格式输出时,将得到错误的输出
float(double)类型,按照%d格式输出时,将得到错误的输出
4)函数的调用:
形参是整型,传char型可以,会隐式转换
形参是char型,传int型可以。
2.强制类型转换
1)简单强制类型转换
(直接使用数据类型)
(char)257为char型,与整型100加时,会转化为整型,即在0000 0001前加上三个字节并设置为0,与100加,送入x
2)高级强制类型转换
static_cast
dynamic_cast
const_cast
reinterpert_cast