当定义的数据类型不一样时,溢出的值也不一样,当然也和编程运行的软件有关
如果在16位计算机系统(如Turbo C)中,short类型和int类型都是占2个字节的内存空间,所以其取值范围都是-215~215-1
如果在32位计算机系统(如Visual C++,CodeBlock)中,short类型占2个字节,而int类型占4个字节,因此它们的取值范围会不一致,此时,short的取值范围为:-215~215-1;而int的取值范围为:-231~231-1
下面的时int类型数据的代码和值:
#include<stdio.h>
void main(){
int a,b; //int类型
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
下面是short类型的代码和运行出的值:
#include<stdio.h>
void main(){
short a,b; //short类型
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}