其中第四行的 (*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编辑过]