现代C:概念剖析和编程实践
上QQ阅读APP看书,第一时间看更新

第6章 派生数据类型

本章涵盖了:

  • 将对象分组到数组中
  • 将指针用作不透明类型
  • 将对象组合成结构
  • 使用typedef为类型提供新的名称

C语言中的所有其他数据类型都是从我们现在知道的基本类型派生出来的。派生数据类型有四种策略。其中两个称为聚合数据类型,因为它们组合了一个或几个其他数据类型的多个实例:

  • 数组:这些组合项都具有相同的基类型(6.1节)。
  • 结构:这些组合项可能具有不同的基类型(6.3节)。

派生数据类型的其他两种策略涉及:

  • 指针:指向内存中对象的实体。

指针是目前为止最复杂的概念,我们将把对它们的详细讨论推迟到第11章。在6.2节中,我们将只把它们作为不透明数据类型来讨论,甚至没有提到它们达到的真正目的。

  • 联合:这些项是覆盖在相同内存位置的不同基类型的项。联合需要对C语言的内存模型有更深入的理解,在程序员的日常生活中用处不大,所以它们只在后面的12.2节中简单介绍。

第五种策略引入了类型的新名称:typedef(6.4节)。与前面四个不同,这并不在C语言的类型系统中创建新类型,而是为现有类型创建新名称。这样,它类似于使用#define定义宏,因此可以为该特性选择关键字。