在这篇博客中,我们将深入探讨C语言中数组和指针的关系,通过一个简单的嵌套循环遍历数组的例子展示了它们的使用。
#include <stdio.h>
int main() {
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {2, 3, 4, 5, 6};
int arr3[] = {3, 4, 5, 6, 7};
int* pa[] = {&arr1, &arr2, &arr3};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
printf("%d ", *(pa[i] + j));
}
printf("\n");
}
return 0;
}
以上代码展示了一个包含三个整型数组和一个整型指针数组的简单程序。首先,我们定义了三个数组arr1
、arr2
和arr3
,每个数组包含五个整数。然后,我们创建了一个指针数组pa
,其中存储了这三个数组的地址。
通过嵌套循环,我们遍历了这个指针数组,并使用指针进行访问数组元素,最后将它们打印出来。输出结果是每个数组一行,每个元素用空格分隔。
在C语言中,数组和指针之间有着密切的关系。数组名本质上是数组第一个元素的地址,因此我们可以通过指针来访问数组中的元素。在这个例子中,*(pa[i] + j)
通过指针访问了二维数组中的元素。
数组和指针的本质:
指针数组与数组指针:
多维数组:
pa
就是一个指向包含5个整数的数组的指针数组。数组的内存布局:
通过了解这些概念,我们可以更好地理解C语言中数组和指针的工作原理