int 有一位是用来存放符号的 表示的范围 :-32768~32767
unsigned int 却没有符号位 所以 表示的范围: 0~65535
[signed]short int 无论是什么编译器 都固定为 16 位 表示范围:-32768~32767
unsigned short[int]无符号短整型:0~65535
unsigned long[int]无符号长整型 : 0~4294967295
[signed] long [int]有符号长整型:-2147483648~2147483647
要用代码在c,c++里各算一遍 ,所占字节在两个软件里是不同的
main()
{
printf("int %dn",sizeof(int));
printf("short %dn",sizeof(short));
printf("char %dn",sizeof(char));
printf("long %dn",sizeof(long));
printf("point %dn",sizeof(int*));
}
c输出结果分别是2、2、1、4、2,int 占两字节;
c++输出结果分别是4、2、1、4、4,int占4个字节
short int 就是 short
C++标准规定,int占一个机器字长。在32位系统中int占32位,也就是4个字节,而在老式的16位系统中,int占16位,即2个字节。而C++标准中只限制规定short int不能超过int的长度,具体长度的可以由C++编译器的实现厂商自行决定。目前流行的32位C++编译器中,通常int占4字节,short int占2字节。其中short int可以简写为short。类似地,C++标准只限制了long int不得小于int的长度,具体也没有作出限制。
结论 无论何时 short 肯定是占两个字节!