指针数组和数组指针
对于指针数组和数组指针的概念,下面是简要的解释:
指针数组(Pointer array)是指一个数组,其中的每个元素都是指针。这意味着数组中存储的是指针值,每个指针可以指向不同的内存地址。例如,int *ptrArray[5];
声明了一个包含5个元素的指针数组,每个元素都是一个 int 指针。
数组指针(Array pointer)是指一个指针,它指向一个数组。这意味着指针指向了整个数组的起始位置,可以通过指针访问整个数组。例如,int (*ptr)[5];
声明了一个指针,它指向一个包含5个 int 元素的数组。
下面是一个使用指针数组和数组指针的示例:
#include <stdio.h>
int main() {
int *ptrArray[5]; // 指针数组
int arr[5] = {1, 2, 3, 4, 5};
int (*ptr)[5]; // 数组指针
for (int i = 0; i < 5; i++) {
ptrArray[i] = &arr[i]; // 指针数组存储每个元素的地址
}
ptr = &arr; // 数组指针指向整个数组
// 通过指针数组访问数组元素
for (int i = 0; i < 5; i++) {
printf("Element %d: %d\n", i, *(ptrArray[i]));
}
// 通过数组指针访问数组元素
for (int i = 0; i < 5; i++) {
printf("Element %d: %d\n", i, *(*ptr + i));
}
return 0;
}
这个示例展示了如何使用指针数组存储每个元素的地址,以及如何使用数组指针访问整个数组的元素。输出将会显示数组中的元素值。