C语言中的数据类型可以进行转换 :
1)强制类型转换
2)隐式类型转换
强制类型转换的语法:
-(Type)var_name;变量名
-(Type)value;变量值
强制类型转换的结果:
- 目标类型能够容纳目标值:结果不变
- 目标类型不能容纳目标值:目标将产生截断。
注意:
不是所有的强制类型转换都能成功,当不能进行强制类型转换时,编译器将产生错误信息。
32位机器上,全局变量的地址占用四个字节。
隐式类型转换:编译器主动的进行类型转换。
(在工程开发中,有一些bug是编译器主动的隐式类型转换带来的。)
注意:
低类型到高类型的隐式类型转换是安全的,不会产生截断;
高类型到低类型的隐式类型转换是不安全的,会导致不正确的结果。
隐式类型转换的发生点:
1)算数运算式中,低类型转换为高类型;
2)赋值表达式中,表达式的值转换为左边变量的类型;
3)函数调用时,实参转换为形参的类型;
4)函数返回值,return表达式转换为返回值类型;
小结: