利用C语言输出二维数组全部元素,指向二维数组的指针
时间: 2023-12-01 13:06:03 浏览: 88
假设二维数组为`int arr[3][4]`,指向二维数组的指针为`int (*p)[4] = arr`。
可以使用双重循环遍历输出二维数组的全部元素:
```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;
}
```
输出结果为:
```
1 2 3 4
5 6 7 8
9 10 11 12
```
其中,`*(*(p + i) + j)`表示取出第`i`行第`j`列的元素的值。
相关问题
利用C语言输出二维数组全部元素,做指向二维数组的指针
可以使用双重循环遍历二维数组,并利用指向二维数组的指针来实现输出。代码如下:
```c
#include <stdio.h>
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int (*p)[3] = arr; // 指向二维数组的指针
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", *(*p + i * 3 + j)); // 输出二维数组元素
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
1 2 3
4 5 6
```
其中,`(*p + i * 3 + j)` 表示指向数组元素的指针,`*(*p + i * 3 + j)` 表示数组元素的值。
利用C语言指向二维数组的指针输出二维数组全部元素
可以利用两级指针来指向二维数组,然后通过循环输出数组的全部元素。下面是一个示例代码:
```c
#include <stdio.h>
void printArray(int **arr, int rows, int cols) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main() {
int rows = 3;
int cols = 4;
int arr[rows][cols] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// 将二维数组转化为指向指针数组的指针
int *p[rows];
for (int i = 0; i < rows; i++) {
p[i] = arr[i];
}
// 通过指向指针数组的指针输出二维数组全部元素
printArray(p, rows, cols);
return 0;
}
```
输出结果为:
```
1 2 3 4
5 6 7 8
9 10 11 12
```
阅读全文