指针数组与指针的指针:错误插入位置的处理和数组操作

需积分: 9 5 下载量 136 浏览量 更新于2024-07-13 收藏 482KB PPT 举报
"错误插入位置的处理-指针数组与指针的指针" 在编程中,错误插入位置的处理是一个非常重要的概念,特别是在链表插入操作中。链表是一种常用的数据结构,它可以动态地分配和释放内存,以满足不同的应用场景。然而,在链表插入操作中,错误插入位置的处理是一个非常重要的步骤。 在链表插入操作中,我们需要首先判断插入位置是否正确,如果插入位置不正确,我们需要打印错误信息并退出程序。例如,在给定的代码中,我们可以看到: ``` if (pre==NULL || k>i-1) /*if (k != i-1) */ { printf("input location error! \n"); exit (1); } ``` 这里,我们首先判断 `pre` 是否为空,如果为空或者 `k` 大于 `i-1`,我们就打印错误信息并退出程序。 在正确插入位置的情况下,我们可以将新结点插入链表中,例如: ``` p->next = pre->next; pre->next = p; ``` 这里,我们将新结点 `p` 的 `next` 指针指向 `pre` 的 `next` 指针,然后将 `pre` 的 `next` 指针指向新结点 `p`。 在这篇文章中,我们还讨论了指针和数组的关系。指针是一种数据类型,它可以指向其他变量的地址,例如: ``` int *p; int a = 10; p = &a; ``` 这里,我们定义了一个指针 `p`,然后将其指向变量 `a` 的地址。 数组是另一种常用的数据结构,它可以存储多个元素,例如: ``` int a[3]; ``` 这里,我们定义了一个数组 `a`,它可以存储三个整数元素。 指针数组是指针和数组的结合,它可以存储多个指针元素,例如: ``` int *p[3]; ``` 这里,我们定义了一个指针数组 `p`,它可以存储三个指针元素。 在指针数组中,我们可以使用指针来访问数组元素,例如: ``` p[0] = &a; p[1] = &b; ``` 这里,我们将指针数组 `p` 的第一个元素指向变量 `a` 的地址,将第二个元素指向变量 `b` 的地址。 在这篇文章中,我们还讨论了指针的指针,也就是指针数组的指针,例如: ``` int **p; ``` 这里,我们定义了一个指针的指针 `p`,它可以指向其他指针的地址。 在指针的指针中,我们可以使用指针来访问其他指针,例如: ``` p[0] = &pa; p[1] = &pb; ``` 这里,我们将指针的指针 `p` 的第一个元素指向指针 `pa` 的地址,将第二个元素指向指针 `pb` 的地址。 在最后,我们讨论了两个例子,第一个例子是使用指针数组输出n个字符串,第二个例子是使用指向指针的指针变量将一批字符串按反序输出。 这篇文章讨论了错误插入位置的处理、指针和数组的关系、指针数组和指针的指针等概念,并提供了两个实践例子来帮助读者更好地理解这些概念。