指针数组以及指向指针的指针.docxVIP

  • 2
  • 0
  • 约5.55千字
  • 约 5页
  • 2023-04-30 发布于上海
  • 举报
指针数组以及指向指针的指针 由于指针本身也是变量,所以它们也可以像其它变量一样存储在数组中。下面通过编写UNIX 程序sort的一个简化版本说明这一点。该程序按字母顺序对由文本行组成的集合进行排 序。 我们在第3 章中曾描述过一个用于对整型数组中的元素进行排序的shell 排序函数,并在第4 章中用快速排序算法对它进行了改进。这些排序算法在此仍然是有效的,但是,现在处理的是长度不一的文本行。并且与整数不同的是,它们不能在单个运算中完成比较或移动操作。我们需要一个能够高效、方便地处理可变长度文本行的数据表示方法。 我们引入指针数组处理这种问题。如 果待排序的文本行首尾相连地存储在一个长字符数 组中,那么每个文本行可通过指向它的第一个字符的指针来访问。这些指针本身可以存储在一个数组中。这样,将指向两个文本行的指针传递给函数strcmp 就可实现对这两个文本行 的比较。当交换次序颠倒的两个文本行时,实际上交换的是指针数组中与这两个文本行相对应的指针,而不是这两个文本行本身(参见图5-8)。 图5-8 这种实现方法消除了因移动文本行本身所带来的复杂的存储管理和巨大的开销这两个孪生问题。 排序过程包括下列3个步骤: 读取所有输入行 对文本行进行排序按次序打印文本行 通常情况下,最好将程序划分成若干个与问题的自然划分相一致的函数,并通过主函数控制其它函数的执行。关于对文本行排序这

文档评论(0)

1亿VIP精品文档

相关文档