利用C语言二维数组做指针输出二维数组全部元素
时间: 2023-12-09 20:49:37 浏览: 163
可以使用指针来输出二维数组的全部元素,具体实现可以参考下面的代码:
```c
#include <stdio.h>
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int *p = &arr[0][0];
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 4; j++) {
printf("%d ", *(p + i * 4 + j));
}
printf("\n");
}
return 0;
}
```
这里使用一个指向二维数组首元素的指针p,然后通过指针的偏移量来访问数组的每一个元素。其中,通过i和j的循环变量来计算偏移量,具体计算方式为i * 4 + j,这里的4是因为每一行有4个元素,需要根据具体情况进行调整。最后,通过printf函数输出每一个元素的值,并在每一行输出一个换行符。
相关问题
利用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
```
利用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)` 表示数组元素的值。
阅读全文