猫史档案馆


【趣玩C语言·05】强制类型转换

用户:科普喵科普喵查看:2 回复:4 评论:2 创建时间:2018-11-09T14:02:09


上期讲解了《自动类型转换》

自动类型转换的规则你掌握了吗?

最重要一点,

字节小的可以向字节大的自动转换,

但字节大的不能向字节小的自动转换。

center_image

本期将学习《强制类型转换》

训练师准备好了吗?

一、强制类型转换

 

      自动类型转换是编译器根据代码的上下文环境自行判断的结果,有时候并不是那么“智能”,不能满足所有的需求。例如double类型不能自动变为int类型。这时候就需要强制类型转换啦!

 

      自动类型转换是编译器默默地、隐式地进行的一种类型转换,不需要在代码中体现出来。

      强制类型转换是程序员明确提出的、需要通过特定格式的代码来指明的一种类型转换。

      强制类型转换的一般形式为:

 (数据类型) (表达式) 

      其作用是把表达式的运算结果强制转换成类型说明符所表示的类型,常见形式有:

      我们看下例子:

 

center_image

输出结果为:

center_image

 

      emotion_兔子在使用强制转换时应注意以下问题:

      1、数据类型和表达式都必须加括号,如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加。

      2、类型转换只是临时性的,转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。例如:

 

center_image

输出结果为:

center_image

 

      3、强制转换后的运算结果不遵循四舍五入原则。

  二、自动类型转换VS强制类型转换  

      可以自动转换的类型一定能够强制转换,但是,需要强制转换的类型不一定能够自动转换。现在我们学到的数据类型,既可以自动转换,又可以强制转换,以后我们还会学到一些只能强制转换而不能自动转换的类型。

      无论是自动转换还是强制转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

       可以自动进行的类型转换一般风险较低,不会对程序带来严重的后果。强制进行的类型转换一般风险较高,有时会导致程序崩溃。不管使用哪种类型的转换,使用者都要意识到潜在的风险。

 

center_image

 

本期作业

 

center_image

      输出的结果是

 

center_image

center_image

上期答案: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

 


回复

上一页1 页 / 共 1下一页
科普喵科普喵

本周优秀技术帖:

bLockTheBlOcK 【编程几时休】函数递归   

https://www.codemao.cn/community/166969

点赞0


评论


霖雨暮风霖雨暮风

int不是可以转成char的吗?(好像仅限127以下0以上)

点赞0


评论


热情的大黄鸡984热情的大黄鸡984

使用啊哈C好评

点赞0


评论


我的地盘我作主我的地盘我作主

python好像不能输出时强制类型转换?

点赞0


评论