c语言指向数组的指针遍历二维数组
时间: 2023-09-15 18:15:18 浏览: 327
要遍历一个二维数组,可以使用两个嵌套的循环。假设二维数组名为arr,可以使用指向数组的指针p,代码如下:
```c
int arr[3][4] = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
int (*p)[4] = arr; // 指向数组的指针p指向arr,因为arr是一个3行4列的二维数组,因此指向数组的指针的类型是int (*)[4]
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", *(*(p+i)+j));
}
printf("\n");
}
```
这里,指向数组的指针p指向arr,因为arr是一个3行4列的二维数组,因此指向数组的指针的类型是int (*)[4]。在循环中,使用*p取得数组元素的值。
相关问题
C语言用指向数组的指针遍历二维数组
可以使用指向数组的指针遍历二维数组。假设有一个二维数组arr,其元素类型为int,可以使用指向int数组的指针进行遍历。
例如,可以定义一个指向int数组的指针p,先让它指向二维数组的第一行,然后逐行遍历整个二维数组。具体实现代码如下:
```
int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int (*p)[4] = arr; // 定义一个指向int数组的指针,让它指向二维数组的第一行
for(int i=0; i<3; i++) {
for(int j=0; j<4; j++) {
printf("%d ", *(*(p+i)+j)); // 输出二维数组的元素
}
printf("\n");
}
```
在上面的代码中,`*(*(p+i)+j)`表示访问二维数组arr的第i行第j列对应的元素值。其中,`p+i`表示指针p指向的int数组的第i行,`*(p+i)`表示第i行对应的int数组,`*(p+i)+j`表示第i行中第j个元素的地址,`*(*(p+i)+j)`表示第i行第j列对应的元素值。
使用C语言编程用指向数组的指针遍历二维数组。
好的,下面是使用指向数组的指针遍历二维数组的C语言代码示例:
```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]);
}
printf("\n");
}
return 0;
}
```
这段代码定义了一个3行4列的二维数组`arr`,然后定义了一个指向数组的指针`p`,用`p`来遍历二维数组。在遍历过程中,使用`p[i][j]`来访问数组元素,其中`i`表示行数,`j`表示列数。
运行代码,输出结果如下:
```
1 2 3 4
5 6 7 8
9 10 11 12
```
希望可以帮助到你!
阅读全文