#include "stdio.h" main() { char a[4][5]={"ABCD","EFGH","IJKL","MNOP"}; char (*p)[5]; int i,j; p=a; for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%c",*(*(p+i)+j)); /* 第 9 行 */ printf("\n"); } }
时间: 2023-11-22 07:53:11 浏览: 177
这段代码有些问题,正确的写法应该是:
```c
#include <stdio.h>
int main() {
char a[4][5] = {"ABCD", "EFGH", "IJKL", "MNOP"};
char (*p)[5];
int i, j;
p = a;
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++)
printf("%c", *(*(p + i) + j));
printf("\n");
}
return 0;
}
```
这段代码的输出结果是:
```
ABCD
EFGH
IJKL
MNOP
```
这是一个二维字符数组的例子,每个元素都是一个长度为 5 的字符串。p 是一个指向长度为 5 的字符数组的指针,即 `char (*)[5]` 类型。在第 9 行中,`*(*(p+i)+j)` 表示取出 p+i 这一行中的第 j 个字符。
阅读全文