用户:科普喵查看:2 回复:4 评论:2 创建时间:2018-11-09T14:02:09
上期讲解了《自动类型转换》,
自动类型转换的规则你掌握了吗?
最重要一点,
字节小的可以向字节大的自动转换,
但字节大的不能向字节小的自动转换。
本期将学习《强制类型转换》,
训练师准备好了吗?
一、强制类型转换
自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么“智能”,不能满足所有的需求。例如double类型不能自动变为int类型。这时候就需要强制类型转换啦!
自动类型转换是编译器默默地、隐式地进行的一种类型转换,不需要在代码中体现出来。
强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换。
强制类型转换的一般形式为:
(数据类型) (表达式)
其作用是把表达式的运算结果强制转换成类型说明符所表示的类型,常见形式有:
我们看下例子:
输出结果为:
在使用强制转换时应注意以下问题:
1、数据类型和表达式都必须加括号,如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加。
2、类型转换只是临时性的,转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。例如:
输出结果为:
3、强制转换后的运算结果不遵循四舍五入原则。
二、自动类型转换VS强制类型转换可以自动转换的类型一定能够强制转换,但是,需要强制转换的类型不一定能够自动转换。现在我们学到的数据类型,既可以自动转换,又可以强制转换,以后我们还会学到一些只能强制转换而不能自动转换的类型。
无论是自动转换还是强制转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
可以自动进行的类型转换一般风险较低,不会对程序带来严重的后果。强制进行的类型转换一般风险较高,有时会导致程序崩溃。不管使用哪种类型的转换,使用者都要意识到潜在的风险。
本期作业
输出的结果是
上期答案:C
【趣玩C语言·04】不可改变的常量&自动类型转换 https://www.codemao.cn/community/166878
也许你还想看:
【趣玩C语言】“ Hello World”猫厂新栏目开讲啦!https://www.codemao.cn/community/166339
【趣玩C语言·02】变量和赋值 https://www.codemao.cn/community/166502
【趣玩C语言·03】基本数据类型&输出格式 https://www.codemao.cn/community/166706