绝密笔记 | 基础知识 | 每日一练(40)

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

学生:请问小编如为什么如下的代码

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) 不能达到需要的效果。当两个整数做除法而结果赋与一个浮点变量时, 也有可能有同样类型的问题,解决方法也是类似的。

今日送给读者的话

望重缙绅,怎似寒微之颂德。朋来海宇,何如骨肉之孚心。

舌存常见齿亡,刚强终不胜柔弱;户朽未闻枢蠹,偏执岂能及圆融。

正文完