《你必须知道的495个C语言问题》这本书里面有一个问题,我没有搞清楚,各位大哥帮帮忙看一下:

[复制链接]
查看11 | 回复2 | 2012-3-17 18:41:35 | 显示全部楼层 |阅读模式
这个问题也不是很难理解,100乘100等于10000,已经超出int的范围了,所以会发生不可预知的错误。(long int)(a * b)的意思是将a与b相乘,结果先保存为int然后再转换为long int,但这里int存不了那么大的数,所以不行。所以用(long int)a * b,先转换再计算。至于为啥没用(long int)a * (long int)b?那是没必要。根据计算的结合性,两个不同类型的变量进行计算,计算机会将取值范围小的那个类型转换成取值范围大的那个变量的类型。...
回复

使用道具 举报

千问 | 2012-3-17 18:41:35 | 显示全部楼层
。同意。。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行