#include<stdio.h>
int main()
{
int a;
a=100000000;
printf("%d",a);
return(0);
}
//为什么a的值即使大于int的范围也会被打印?
最佳答案
because range of int type in c is from -32767 to 32767
你的假设是错误的。
类型范围int
未固定。 int 不一定是 16 位。
C 标准没有为 int
定义固定范围。 。它要求一致的实现至少支持 int
的 -32767 到 32767 范围。 。但实现可以支持更高的范围。在大多数系统上,int
是32位宽。
所以你的输出没有什么意外的。
如果您想知道确切的限制,那么您可以使用宏 INT_MIN
和INT_MAX
来自<limits.h>
.
关于c - 为什么 int 类型变量的值即使不在 int 范围内也会被打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085566/