描述复杂数据:复合数据类型
上一节
下一节
过程化编程需要完成两个工作:描述数据以及描述数据处理过程。其中,描述数据通过变量来完成,变量=数据类型+名字。对于简单数据,C++语言提供了内置数据类型,对于一些比较复杂的数据,C++语言则引入了复合数据类型,包括:
(1)常变量:描述内容不可修改的变量,用于替代字面量;
(2)数组变量:描述类型相同的一组变量,存储相同类型的一组数据;
(3)指针变量:存放其它变量的地址,通过指针间接操作其它的变量;
(4)引用变量:给其它变量取一个的别名,通过引用直接操作其它变量;
对于复合数据类型的变量,我们需要关注:该类型变量的用途和适用场合、如何定义和初始化变量、变量的存储空间映像、如何使用变量访问数据。
此外,C++语言允许嵌套复合的数据类型,包括常量数组、指针数组和数组指针、常量指针、指针常量、指向常量的常指针、多维数组、多级指针、以及常变量/数组/指针的引用。注意,通过typedef可以简化嵌套复合变量的定义和声明。
当然,在过程化编程中,复合数据类型往往需要与函数结合使用。其中,
(1)数组用作函数形式参数时会丢失数组元素个数的信息,即退化为指针;
(2)函数返回数组名,实际返回的是指向数组首元素的指针;
(3)可以定义指向函数的指针(函数指针),通过函数指针可以调用函数;
(4)引用可以用作函数的形式参数和函数返回类型,可以定义函数引用。

