算机硬件进行算术操作时,要求各操作数的类型具有相同的大小(存储位数)及存储方式。但是,实际由于 C 语言编程的灵活性,在一个表达式或一条语句中,允许不同类型的数据混合运算。此时就需要进行类型转换。
类型转换包括强制类型转换和隐式类型转换。
隐式类型转换原则:
1.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型
2.当函数调用时,所传实参与形参类型不一致时,也会把实参自动转换为形参类型后再赋值。
3.当 return 后的表达式类型与函数的返回值类型不一致时,也会自动把 return 后表达式的值转换为函数类型后,再返回。
在C语言中不能将自定义类型转换为基本数据类型
强制类型转换的结果
目标的类型能够容纳目标值:结果不变
目标的类型不能容纳目标值:结果产生截断
当不能进行强制类型转换时,编译器将产生错误信息。