整型数据类型:

  • int: 占用2或4个字节 不同的环境下长度不同
  • short int: 只占用2个字节 可以简写为short
  • long int: 大于等于int长度 不同的环境下长度不同 可以简写为long

    C语言并没有严格规定 short、int、long 的长度,只做了宽泛的限制

  • short 至少占用 2 个字节。

  • int 建议为一个机器字长。32 位环境下机器字长为 4 字节,64 位环境下机器字长为 8 字节。
  • short 的长度不能大于 int
  • long 的长度不能小于 int。

    总结:
    2 ≤ short ≤ int ≤ long
    short、int、long 是C语言中常见的整数类型,其中 int 称为整型,short 称为短整型,long 称为长整型。
    short 可以节省内存,long 可以容纳更大的值。

    查看数据类型的长度

    通过sizeof操作符查看指定的数据类型的长度

    ```c int num1 = 1; short int num2 = 1; long int num3 = 1; printf(“该平台下int 的长度=%d\n”, sizeof(int)); //4 printf(“int 的长度=%d\n”, sizeof(num1)); //4 printf(“short int 的长度=%d\n”, sizeof(num2)); //2 printf(“long int 的长度=%d\n”, sizeof(num3)); //4

getchar();

  1. <a name="AhjPy"></a>
  2. ### 内存优化
  3. 在现代操作系统中,int 一般占用 4 个字节(Byte)的内存,共计 32 位(Bit)。如果不考虑正负数,当所有的位都为 1 时它的值最大,为 232-1 = 4,294,967,295 ≈ 43亿,这是一个很大的数,实际开发中很少用到,而诸如 1、99、12098 等较小的数使用频率反而较高。<br /> **使用 4 个字节保存较小的整数绰绰有余,会空闲出两三个字节来**,这些字节就白白浪费掉了,不能再被其他数据使用。现在个人电脑的内存都比较大了,配置低的也有 2G,浪费一些内存不会带来明显的损失;而在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽力节省内存。
  4. <a name="awEoE"></a>
  5. ### 符号位
  6. short、int 和 long 类型默认都是带符号位的,符号位以外的内存才是数值位。<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/519009/1618884982135-c47702c1-98f1-4ca0-91a5-902c47025dec.png#align=left&display=inline&height=112&id=ucd95dc28&margin=%5Bobject%20Object%5D&name=image.png&originHeight=223&originWidth=1241&size=29091&status=done&style=none&width=620.5)<br />符号位, 0 表示正数, 1 表示负数。默认为正数0<br />如果我们只考虑正数的话,那么就可以不需要符号位,数据类型的所有位都用来存储数值,这样数值的范围就更大了。
  7. ```c
  8. //只需要在数据类型前面加上 unsigned 关键字,即无符号数,只能表示正数。
  9. unsigned short a = 12;
  10. unsigned int b = 1002; //如果是unsigned int类型,那么可以省略 int ,只写 unsigned
  11. unsigned long c = 9892320;