2

このプログラムは、C実装に対して簡単な質問に答える ように求めています。

表現可能な最大の整数INT_MAX < 0を確認して出力します。

printf ("%d\n", (INT_MAX) < 0);

したがって、出力が表示されます0。condition がfalseになり、関係演算子が returnになるため0です。

しかし、表現可能な最大の整数に加えて条件をチェックすると、次のプログラムを参照してください。 1

#include <limits.h>
#include <stdio.h>

int main (void)
{
  printf ("%d\n", (INT_MAX+1) < 0);
  return 0;
}

と表示された出力 1

条件がfalseにならないのはなぜですか?

また、表現可能な最大の整数に 1 を加えると、結果は負になりますか?

4

4 に答える 4

-1
INT_MAX = 0x7fffffff
INT_MAX + 1 = 0x80000000 = -2147483648 < 0
于 2016-08-24T07:35:34.693 に答える