C语言数据类型分类

C语言数据类型的分类方式如下:
  • 基本类型
    • 标准整数类型,以及扩充的整数类型
    • 实数浮点类型,以及复数浮点类型
  • 枚举类型
  • void类型
  • 派生类型
    • 指针类型
    • 数组类型
    • 结构类型
  • 联合类型
  • 函数类型

基本类型和枚举类型,统称算术类型(arithmetic type)。算术类型和指针类型,统称为标量类型(scalar type)。数组类型和结构类型被统称为聚合类型(aggregate type)。联合类型(union type)不被认为是聚合类型,因为在任一时刻下,联合中只有一个成员可以具有值。

函数类型(function type)描述了函数的接口。这指的是,该类型既指定了函数返回值的类型,又指定了在调用该函数时,传递给函数的所有参数的类型。

其他所有数据类型都是用来描述对象。这种描述可能包括也可能没有包括对象存储空间大小信息。如果包括,这种数据类型就称为对象类型(object type);如果不包括,就是不完整类型(incomplete type)。

下例,由外部定义的数组变量就是一个不完整类型:

extern float fArr[];  // 外部声明

这行代码声明 fArr 为一个数组,其元素为 float 类型。然而,由于上述代码没有指定该数组的大小,所以 fArr 的类型是不完整的。只要全局数组 fArr 在该程序的其他位置(例如,在其他源文件中)通过指定数组大小来完成定义,则上述声明足以使得在当前作用域内使用该数组。

某些数据类型在定义时使用了多个关键字,例如 unsigned short。在这种情况下,不限制关键字排列次序。但是,关键字次序存在习惯性的排列方式,本书遵照该惯例。