int 的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/29 11:34:23
int 定义一个变量后,当a=7000时,为什么结果没溢出?
还有一些黑客的程序用int main(void),而不直接用main()?

#include<stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
printf("%d",a);
return 0;
}
哦,输错了是70000

在16位系统中int是-65526-65535,16位编译器中的(比如DOS下的Bordand C++)
在32位系统中int是4字节的,32bit,正整数取值范围,和以前的long是一样的,-2147483648 to 2147483647

在32位系统里long的取值和int是一样的
现在32或64位平台上的编译器,一般至少都是32位的,int占4个字节,范围大约是正负21亿左右。

在VC的环境中int 和 long 范围一样,不同的编译器的范围不同.

int类型的数据范围为 -32768 - 32768,所以-32768<7000<32768 ,另外int main(void)中void意味着这个函数没有任何参数列表,效果和int main()一样的