首先对该题目进行具体分析:
i是在四个数组首地址间循环,解引用便是找到了某个数组,j是在已经找到某个数组首地址的基础上进入数组进行循环,因此i做外部循环,j做内部循环,即可打印出二维数组。
代码实现
#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 arr4[] = { 4,5,6,7,8 };
//定义指针数组,分别是四个指针变量指向了四个数组首地址
int* arr[4] = { arr1,arr2,arr3,arr4 };
int i = 0;
for (i = 0; i < 4; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
printf("%d ", *(*(arr + i) + j));
}
printf("\n");
}
return 0;
}
注意:定义指针变量时传入数组只是传入了数组的首地址,而非整个数组元素。因此注意解引用的使用。