据我所知,整数的范围是 32,768 到 32,767。 长整数的范围是 2,147,483,648 到 2,147,483,647。 我仔细检查了维基百科以确保。
现在的问题:
int a=2147483647;
printf("a: %d\n", a);
为什么会这样?如果我将 1 添加到 2147483647 然后它打印垃圾,如果变量是一个长整数,这是可以预期的。但为什么它允许我首先将一个长整数分配给一个整数?
最佳答案
From what I know an integer is in the range of 32,768 to 32,767.
这是不正确的。 int
的范围至少是 -32,767 到 32,767;它可能具有更大的范围,并且在大多数 32 位和 64 位平台上都是如此。
你可以找出int
的范围通过检查 INT_MAX
在您的平台上输入和 INT_MIN
<limits.h>
中定义的宏.
关于C:为什么整数充当长整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267658/