《C编程技巧:117个问题解决方案示例 》 —1.10 显式类型转换

举报
华章计算机 发表于 2020/02/12 14:11:49 2020/02/12
【摘要】 本节书摘来自华章计算机《C编程技巧:117个问题解决方案示例 》 一书中第1章,第1.10节,作者是希里什·查万(Shirish Chavan),卢涛 译。

1.10 显式类型转换

你可以显式执行类型转换,而不是让类型转换完全依赖编译器。此操作称为显式类型转换、强制转换或强制。强制转换中使用的运算符称为强制转换运算符。注意这里给出的LOC(假设intN是一个int变量):

intN = (int)14.85;                /* L1,好的,执行强制转换操作*/

在此LOC中,对数值常量14.85执行强制转换操作。强制转换运算符是“(int)”。在此操作中,14.85的类型从double被更改为int,其小数部分被截断并丢弃,整数部分14作为int类型的数值常量返回,而int又被赋值给intN。以下是强制转换操作或显式类型转换的通用语法:

(desiredType) 表达式

这里,desiredType是任何有效的类型,如char、short int、int、long int、float、double等。在这种语法中,强制转换运算符是“(desiredType)”。请注意,括号是必需的,并且是转换运算符的一部分。此转换操作的效果是将表达式的类型更改为desiredType。

在LOC 1中,强制转换操作对数值常量执行,但是它也可以对变量执行。注意这里给出的代码片段:

 image.png

执行后,这段代码在屏幕上显示以下文本行:

 image.png

在这段代码中,对变量dblN执行了两次强制转换操作,第一次在LOC 4中执行,第二次在LOC 7中执行。请注意,在dblN上执行转换操作后,dblN的值不受影响。实际上,强制转换操作不在dblN上执行,存储在dblN中的值被获取,然后对该获取的值(即在数值常量3.7上)执行强制转换操作。也因此,在LOC 4中使用运算符“(int)”对dblN执行强制转换操作后,变量dblN在执行LOC 6后仍然不受影响。LOC 6的执行将dblN的值显示为3.7。在LOC 7中,printf()函数的参数不是变量而是表达式,如下所示:

 image.png

在这一章里,我们讨论了与C语言相关的各种问题。在本书的其余章节中,你将看到所有的C技巧。本书的目的是为你提供现成的解决方案,在本书中,你还可以找到满足各种水平读者需求的现成解决方案。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。