请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 175|回复: 9

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

[复制链接]

3172

主题

3269

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
22691
发表于 2015-12-25 22:44:39 | 显示全部楼层 |阅读模式
在两种情况下需要使用类型强制转换。第一种情况是改变运算分量的类型,从而使运算能正确地进行。下面的程序与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));
回复

使用道具 举报

0

主题

864

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2016-1-25 18:13:46 | 显示全部楼层
很不错的帖子,又学到了,力挺
回复 支持 反对

使用道具 举报

2

主题

948

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-1-25 18:23:10 | 显示全部楼层
大神啊!豁然开朗。。。。。。
回复 支持 反对

使用道具 举报

2

主题

948

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-1-26 15:03:22 | 显示全部楼层
能再解释的细节一些吗,具体的
回复 支持 反对

使用道具 举报

0

主题

879

帖子

10

积分

注册会员

Rank: 2

积分
10
发表于 2016-1-26 21:17:52 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

1

主题

345

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
QQ
发表于 2016-2-7 21:46:32 | 显示全部楼层
顶楼主,帮你顶个贴,我挣个积分
回复 支持 反对

使用道具 举报

8

主题

1005

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2017-12-19 21:07:22 | 显示全部楼层
不错的平台,以后需要经常光顾!
回复 支持 反对

使用道具 举报

0

主题

896

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2018-7-23 14:48:27 | 显示全部楼层
楼主是好人哪,感谢分享,太棒了!
回复 支持 反对

使用道具 举报

0

主题

864

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2018-10-14 14:26:22 | 显示全部楼层
不错,学习了
回复 支持 反对

使用道具 举报

2

主题

920

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2018-10-14 21:18:15 | 显示全部楼层
不错的平台,以后需要经常光顾!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-11-21 02:16 , Processed in 0.233874 second(s), 30 queries .

快速回复 返回顶部 返回列表