指针实现二维字符数组行列数据交换
时间: 2023-12-14 22:32:20 浏览: 135
二维字符数组.zip
以下是指针实现二维字符数组行列数据交换的示例代码:
```c
#include <stdio.h>
void swap(char **p) {
char *temp = p[0];
p[0] = p[1];
p[1] = temp;
}
int main() {
char arr[2][3] = {{'a', 'b', 'c'}, {'d', 'e', 'f'}};
char *p[2] = {arr[0], arr[1]};
printf("Before swap:\n");
printf("%c %c %c\n", p[0][0], p[0][1], p[0][2]);
printf("%c %c %c\n", p[1][0], p[1][1], p[1][2]);
swap(p);
printf("After swap:\n");
printf("%c %c %c\n", p[0][0], p[0][1], p[0][2]);
printf("%c %c %c\n", p[1][0], p[1][1], p[1][2]);
return 0;
}
```
输出结果为:
```
Before swap:
a b c
d e f
After swap:
d e f
a b c
```
解释如下:
首先定义一个二维字符数组`arr`,并将其第一行和第二行的首地址分别存储在指针数组`p`中。然后定义一个`swap`函数,该函数接收一个二维字符数组的行指针,即一个指向指针数组的指针。在`swap`函数中,我们通过交换`p`和`p`来实现行列数据的交换。最后在`main`函数中,我们调用`swap`函数并输出交换后的结果。
阅读全文