C语言类型转换
隐式类型转换
编译器在编译阶段自动进行,通常适用于相近的类型,如果不能转换则会编译失败。
何时发生隐式类型转换:
- 在大多数表达式中,比int类型小的整数值提升为较大的整数类型
- 在条件中,非布尔值转换成布尔类型
- 初始化过程中,初始值转换成变量的类型;在赋值语句中,右侧运算对象转化成左侧运算对象的类型
- 算术运算或关系运算对象有多种类型,需要转换成同一种类型
- 函数调用时也会发生类型转换
显式类型转换
需要用户自己处理,通常用于不相近类型的转换。
int main()
{
int i = 9;
int* p