根据C 的内部类型转换规则, 乘法是用int 进行的, 而其结果可能在转换为long 型并赋给左边的c 之前溢出或被截短。可以使用明确的类型转换, 强迫乘法以long 型进行:
long int c = (long int)a * b;
注意, (long int)(a * b) 不能达到需要的效果。
当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题,
解决方法也是类似的。
为什么如下的代码int a = 100, b = 100; long int c = a * b; 不 能工作?

阅读 110
收藏 0
点赞 0
评论 0
评论列表
文章目录