c语言指针和二维数组的代码
时间: 2023-11-05 19:44:59 浏览: 100
当涉及到指针和二维数组的组合时,可以使用指针数组或者指向二维数组的指针来处理二维数组。
1. 使用指针数组处理二维数组:
```c
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int *ptrArr[3]; // 声明一个指针数组
for (int i = 0; i < 3; i++) {
ptrArr[i] = arr[i]; // 将指针指向二维数组的每一行
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", *(ptrArr[i] + j)); // 使用指针访问二维数组的元素
}
printf("\n");
}
return 0;
}
```
在这个示例中,我们声明了一个二维数组 `arr`,然后声明了一个指针数组 `ptrArr`。然后,我们将指针数组的每个元素指向二维数组的每一行。通过使用指针访问二维数组的元素,可以打印出二维数组的内容。
2. 使用指向二维数组的指针处理二维数组:
```c
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int (*ptr)[3]; // 声明一个指向包含3个整数的数组的指针
ptr = arr; // 将指针指向二维数组
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", *(*(ptr + i) + j)); // 使用指针访问二维数组的元素
}
printf("\n");
}
return 0;
}
```
在这个示例中,我们声明了一个二维数组 `arr`,然后声明了一个指向包含3个整数的数组的指针 `ptr`。然后,将指针指向二维数组。通过使用指针访问二维数组的元素,可以打印出二维数组的内容。
需要注意的是,二维数组在内存中是按照行优先存储的。因此,在处理二维数组时,需要确保访问元素的顺序是正确的。
阅读全文