体验使用指针数组。先对一个二维数组进行输入赋值,再通过指针运算操作方法,对数组元素进行打印输出。
时间: 2024-05-16 13:12:50 浏览: 68
好的,这是一个体验使用指针数组的示例程序,它可以让你更好地理解指针数组的原理和使用方法:
```c
#include <stdio.h>
int main() {
int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
int (*p)[4] = arr; // 定义二维数组指针并指向数组首地址
// 通过指针运算打印数组元素
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(*(p + i) + j)); // 等价于 *(p[i] + j) 或 p[i][j]
}
printf("\n");
}
return 0;
}
```
在这个示例程序中,我们首先定义了一个二维数组 `arr`,并初始化了它的元素。然后,我们定义了一个指向二维数组的指针 `p`,并将它指向数组的首地址。注意,我们使用了一对圆括号将 `*p` 包裹起来,以表示它是一个指向长度为 4 的整型数组的指针。
接下来,我们通过指针运算打印了数组元素。具体来说,我们使用了两次解引用 `*` 运算符,第一次是将 `p` 指针加上 `i` 个长度为 4 的数组,得到二维数组的第 `i` 行;第二次是将所得到的一维数组指针加上 `j` 个整型元素,得到二维数组的第 `i` 行第 `j` 列元素。
最终,我们通过循环打印出了整个二维数组的元素。需要注意的是,指针数组的操作方法与此类似,只不过它是由多个一维数组组成的数组。
阅读全文