《C编程技巧:117个问题解决方案示例 》 —1.10 显式类型转换
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中,强制转换操作对数值常量执行,但是它也可以对变量执行。注意这里给出的代码片段:
执行后,这段代码在屏幕上显示以下文本行:
在这段代码中,对变量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()函数的参数不是变量而是表达式,如下所示:
在这一章里,我们讨论了与C语言相关的各种问题。在本书的其余章节中,你将看到所有的C技巧。本书的目的是为你提供现成的解决方案,在本书中,你还可以找到满足各种水平读者需求的现成解决方案。
- 点赞
- 收藏
- 关注作者
评论(0)