故意分配“i”值大于INT_MAX时的奇怪行为

时间:2015-07-25 13:41:15

标签: c

当我在此代码中指定大于i的{​​{1}}值时

INT_MAX

因此在#include <stdio.h> #include <limits.h> int main() { int i; i=INT_MAX+3; printf("%d \n",INT_MAX); //INT_MAX = 2147483647 if(i>INT_MAX) { printf("OVERFLOW"); } else { printf("%d",i); } return 0; } 中,条件为真,应打印i=INT_MAX+3;,但会打印一些overflow。是不确定的行为?

1 个答案:

答案 0 :(得分:4)

  1. 是的,有符号整数溢出在C中具有未定义的行为。

  2. 对于任何i > INT_MAX
  3. int i永远不会成立。如何int大于最大可能int