C语言数据类型分类

C语言的数据类型分类如下:

  • 基本类型
    • 数值类型
      • 整型
        • 短整型short
        • 整型int
        • 长整型long
      • 浮点型
        • 单精度float
        • 双精度double
    • 字符类型char
  • 构造类型
    • 数组
    • 结构体struct
    • 共用体union
    • 枚举类型enum
  • 指针类型
  • 空类型void

整型数据

  • char 1 字节 -128 到 127 或 0 到 255
  • unsigned char 1 字节 0 到 255
  • signed char 1 字节 -128 到 127
  • int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
  • unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
  • short 2 字节 -32,768 到 32,767
  • unsigned short 2 字节 0 到 65,535
  • long 4 字节 -2,147,483,648 到 2,147,483,647
  • unsigned long 4 字节 0 到 4,294,967,295

int的长度取决于操作系统的位数和编译器,一般在16位操作系统为2个字节,32位操作系统位4个字节,可以使用sizeof()得到对象或者存储类型的字节大小

浮点数简介

浮点数的是相对于定点数来说的,它们是两种表示小数的方式。

所谓定点是指小数点的位置总是在数的某个特定位置。

浮点格式则是基于科学计数法的,因为它的小数点位置不固定。浮点数是既有整数又有小数的数,纯小数可以看作实数的特例。

浮点数在内存中整数部分始终是1

浮点型数据

类型 字节数 符号位 指数位 尾数位 指数范围 值范围 有效数字
float 4 1 8 23 -127~+128 -2^128 ~ +2^128也即-3.40E+38 ~ +3.40E+38 2^23 = 83886086~7位有效数字
double 8 1 11 52 -1023~+1024 -2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308 2^52 = 450359962737049615~16位有效数字