【问题标题】:Arrays of pointers example指针数组示例
【发布时间】:2021-04-03 14:47:18
【问题描述】:

我正在研究关于指针的this 网页。 指针数组部分说明如下:

我们可以有指针数组,因为指针是变量。

使用示例:

对不同长度的文本行进行排序。

注意:无法在单个操作中移动或比较文本。

指针数组是一种数据表示,可以有效且方便地处理可变长度的文本行。

我们怎样才能做到这一点?:

  • 将行端到端存储在一个大字符数组中(图 9.4)。 \n 将分隔线。

  • 将指针存储在不同的数组中,其中每个指针指向每个新行的第一个字符。

  • 使用 strcmp() 标准库函数比较两行代码。

  • 如果 2 行有问题——交换指针数组中的指针(不是文本)。 这消除了:

  • 复杂的存储管理。

  • 移动线路的高开销。

我不明白图 9.4 中的两个指针数组 P 发生了什么。它在第四点中说,如果 2 行有问题,则交换指针数组中的指针,但似乎 P 中的指针根本没有交换;相反,指针似乎完全一样——位于P0 位置的指针指向ABC,位于P1 位置的指针指向DEF,位于2 位置的指针的P 指向CAT。这是怎么回事?

【问题讨论】:

  • 你只有一个数组P,你交换数组的元素。
  • @Someprogrammerdude 我明白了。
  • 我猜图片是错误的-也许制作它的人只是交换了两个盒子而不是指针箭头-也许是为了说明正确的顺序。但对我来说似乎完全错了。

标签: arrays c pointers


【解决方案1】:

那张图片有错误。带交叉箭头的想法是为了证明右侧的字符串 CAT 和 DEF 没有移动,但作者错误地交换了右侧的字符串。

由于页面是 1999 年写的,22 年没有修复,也许你应该寻找更好的资源...

【讨论】:

  • 我们的讲师将我们引导至此页面。
猜你喜欢
  • 1970-01-01
  • 2015-02-04
  • 1970-01-01
  • 1970-01-01
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多