Code Fix

中級int型の最大値に1を足すと最小値(負の数)に折り返る › パターン2

int型の最大値に1を足すと最小値(負の数)に折り返る

INT_MAXに1を足すと、多くの環境ではINT_MINまで折り返り、突然大きな正の数が大きな負の数に変わります。

 1  #include <limits.h>
 2  #include <stdio.h>
 3  
 4  int main(void) {
 5      int count = INT_MAX - 1;
 6      long total = (____________)count + 3;
                            ^
 7      printf("%ld\n", total);
 8      return 0;
 9  }
出力: -2147483647期待: 2147483649

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

int型の最大値に1を足すと最小値(負の数)に折り返る

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)