其中第四行的 (*p)[5]
——— 第四行是 int (*p)[5],这个 int 不能省
scanf("%d",(*(p+i))+j)
——— 就是 scanf("%d", &p[i][j] )
printf("%5d",*(*(p+i))+j)
——— 就是 printf("%5d", p[i][j] )
程序代码:
#include <stdio.h>
int main(void)
{
int a[3][5], (*p)[5]; // int (*p)[5] 是一个数组指针,本例用来方便地访问一个二维数组。
p = &a[0];
printf("输入三行五列整数:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
// scanf("%d", (*(p+i))+j );
scanf("%d", &p[i][j]); // 这句和上面的等价
}
}
p = &a[2];
printf("第三行是:\n");
for (int k = 0; k < 5; k++) {
// printf("%d, ", *(*(p)+k));
printf("%d, ", p[0][k]); // 这一句和上面的等价
}
puts("");
}
[此贴子已经被作者于2019-8-23 22:10编辑过]