通过指针数组引用二维数组的元素,来实现数组的转置
时间: 2024-02-20 13:55:59 浏览: 91
可以通过指针数组引用二维数组的元素,来实现数组的转置。具体实现方法如下:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
int *p[3];
// 将指针数组指向二维数组每行的首元素
for (i = 0; i < 3; i++) {
p[i] = arr[i];
}
// 通过指针数组引用二维数组的元素,实现数组的转置
for (i = 0; i < 3; i++) {
for (j = i; j < 3; j++) {
int temp = *(p[i] + j);
*(p[i] + j) = *(p[j] + i);
*(p[j] + i) = temp;
}
}
// 输出转置后的数组
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
1 4 7
2 5 8
3 6 9
```
其中,通过指针数组`p`引用二维数组`arr`的元素,实现了数组的转置。
阅读全文