下面的代码给出的输出为 2147483647。如果if(atol(str)<=2147483647u
) 更改为if(atol(str)<2147483647u)
,则输出为 100。输入保持与 相同str= "2147483649"
。
#include <stdio.h>
#include <ctype.h>
int main()
{
unsigned long l = 100;
unsigned char str[19] = "2147483649";
if(atol(str)<=2147483647u)
{
l = atol(str);
}
printf("\n%ld",l);
return 0;
}