c语言遍历二维数组
时间: 2023-07-03 07:06:58 浏览: 57
遍历二维数组可以使用嵌套的循环语句。假设我们要遍历一个n行m列的二维数组arr,可以用如下的代码:
```c
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
printf("%d ", arr[i][j]); // 打印数组元素
}
printf("\n"); // 换行
}
```
这段代码中,外层循环控制行数,内层循环控制列数,通过两个循环的嵌套,我们可以遍历整个二维数组。在循环体中,我们可以对数组元素进行任何需要的操作。以上代码以打印数组元素为例,实际应用中可以根据需要进行修改。
相关问题
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语言指向数组的指针遍历二维数组
要遍历一个二维数组,可以使用两个嵌套的循环。假设二维数组名为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取得数组元素的值。