中級 › 符号ありと符号なしの比較で -1 が巨大な数として扱われる › パターン5
符号ありと符号なしの比較で -1 が巨大な数として扱われる
int型とunsigned int型を比較すると、int型の値は自動的にunsigned intへ変換されます。
1 #include <stdio.h> 2 3 int main(void) { 4 int delta = -2; 5 unsigned int limit = 1; 6 if (___________________________) { ^ 7 printf("under\n"); 8 } else { 9 printf("over\n"); 10 } 11 return 0; 12 }
出力: over期待: under
空欄を埋めてコンパイル・実行を通す
符号なしへの暗黙変換によって、負の数が非常に大きな数として扱われてしまいます。
次の問題