4.8.2 强制转换

强制类型转换是通过类型转换运算实现的,其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。具体格式如下所示。

    (类型说明符)  (表达式)

例如下面的转换:

    (float) m                       //把m转换为float型
    (int)(m+n)                      //把m+n的结果转换为整型

在使用强制转换时应注意如下两个问题。

(1)类型说明符和表达式都必须加括号(单个变量可以不加括号),若把(int)(x+y)写成(int)x+y则是把x转换成整型之后再与y相加了。

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

实例4-8

使用强制转换计算两个数相除

源码路径daima\4\4-8

本实例的实现文件为“qiangzhi.c”,具体代码如下。

    #include <stdio.h>
    int main(void){
        int sum = 17, count = 5;
        double mean;
        mean = (double) sum / count; //此处使用强制转换
        printf("sum除以count的结果是: %f\n", mean);
        return 0;
    }

代码编写完毕后,执行效果如图4-10所示。

图4-10 执行效果

拓展范例及视频二维码

范例4-8-01:使用#define预处理器

源码路径:演练范例\4-8-01\

范例4-8-02:使用const关键字

源码路径:演练范例\4-8-02\