当我在此代码中指定大于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
。是不确定的行为?
答案 0 :(得分:4)
是的,有符号整数溢出在C中具有未定义的行为。
i > INT_MAX
, int i
永远不会成立。如何int
大于最大可能int
?