面试啦 - 提供专业面试问题及答案、面试技巧、助您成功面试!
您的当前位置:首页 > 面试题库 > IT面试题 > C++面试题 > 正文

为什么如下的代码int a=100,b=100;long int c=a * b;不能工作

根据C 的内部类型转换规则, 乘法是用int 进行的, 而其结果可能在转换为long 型并赋给左边的c 之前溢出或被截短。可以使用明确的类型转换, 强迫乘法以long 型进行:
long int c = (long int)a * b;
注意, (long int)(a * b) 不能达到需要的效果。
当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题,解决方法也是类似的。
词条:c面试题
上一篇:strstr()的简单实现 下一篇:程序运行正确, 但退出时却"core dump"了,怎么回事
与该文相关的文章

温馨提示:如果您对面试网有任何建议,请通过网站联系邮箱向我们反馈,感谢各位的建议与支持!