您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言 什么时候应该使用类型强制转换(typecast)?

时间:12-30来源:作者:点击数:

在两种情况下需要使用类型强制转换。第一种情况是改变运算分量的类型,从而使运算能正确地进行。下面的程序与2.12中的例子相似,但有不同之处。变量n被赋值为整数i除以整数j的结果,因为是整数相除,所以结果为0。变量f2也被赋值为i除以j的结果,但本例通过(float)类型强制转换把i转换成一个float类型,因此执行的是浮点数除法运算(见2.11),结果为0.75。

#include <stdio.h>
main ( )
{
   int i = 3;
   int j = 4
   float f1 =i/j;
   float f2= (float) i/j;
   printf("3/4== %g or %g depending on the type used. \n",f1, f2);
}

第二种情况是在指针类型和void * 类型之间进行强制转换,从而与期望或返回void指针的函数进行正确的交接。例如,下述语句就把函数malloc()的返回值强制转换为一个指向foo结构的指针:
    struct foo *p=(struct foo *)malloc(sizeof(struct foo));

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
    无相关信息
栏目更新
栏目热门