首页 理论教育C语言实战:一维动态数组的使用

C语言实战:一维动态数组的使用

【摘要】:实现一维动态数组的基本步骤为:①定义合适数据类型的一级指针变量。③将动态分配存储区域的首地址转换为所需要的指针形式赋值给对应的指针变量。④将指针变量名作为一维数组名操作。为了模拟数据,程序中仍然要求被排序数组用随机函数生成。例8.18的程序除了被处理的数组是动态创建的之外,程序的功能和结构在第4章中已经进行了讨论,请读者参照第4章的知识自行分析。使用动态一维数组时,需要注意和直接定义一维数组之间的差异。

在C程序设计中,使用指针的概念和C语言提供的存储分配类标准库函数可以非常容易地实现一维动态数组。实现一维动态数组的基本步骤为:

①定义合适数据类型的一级指针变量

②调用C动态存储分配标准库函数按照指定的长度和数据类型分配存储。

③将动态分配存储区域的首地址转换为所需要的指针形式赋值给对应的指针变量。

④将指针变量名作为一维数组名操作。

【例8.18】 编写程序实现冒泡排序功能,程序中假定事先并不知道排序元素的个数。为了模拟数据,程序中仍然要求被排序数组用随机函数生成。

例8.18的程序除了被处理的数组是动态创建的之外,程序的功能和结构在第4章中已经进行了讨论,请读者参照第4章的知识自行分析。程序的一次执行过程和结果如下所示:(www.chuimin.cn)

请输入参加排序的元素个数:15

排序前的数据序列:

43 50 64 10 41 22 22 84 65 17 81 30 42 64 73

排序后的数据序列:

10 17 22 22 30 41 42 43 50 64 64 65 73 81 84

从上面程序实现可以看出,使用动态数组可以根据应用的实际需要进行数据准备,给程序设计带来许多的灵活性。使用动态一维数组时,需要注意和直接定义一维数组之间的差异。在直接定义数组时,可以对数组进行初始化操作。但对于动态一维数组,则需要使用循环赋值的方式来实现数组赋初值工作。例如: