– 大きな数値同士の掛け算ではオーバーフローしやすい
– 表現可能なのは2147483647まで
– 最大値に1を足した場合もオーバーフローになる
#include <stdio.h> #include <limits.h> int main(void){ int a = INT_MIN; // -2147483648 int b = -1; int answer = a * b; printf("%d\n", answer); return 0; }
$ ./main
-2147483648
int answer = a / b;としても同様
$ ./main
Floating point exception (core dumped)