指针小练习
/* #include <stdio.h> int main() { int a[3][4]; int i,j; int (*p)[4]; p=a; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } for(i=0;i<3;i++) for(j=0;j<4;j++) { printf("%d\n",(*(p+i))); //这里的*P还是指向的地址数据,只要指向的是地址,加1始终认为是地址的加1,这里的变量长度为16; } return (0); } //******************************************************* #include <stdio.h> int main() { int a[3][4]; int i,j; int (*p)[4]; p=a; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } for(i=0;i<3;i++) for(j=0;j<4;j++) { printf("%d\n",((*p+i))); //这里的*P还是指向的地址数据,只要指向的是地址,加1始终认为是地址的加1,这里变量长度为4; } return (0); } //正确输出 #include <stdio.h> int main() { int a[3][4]; int i,j; int (*p)[4]; p=a; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } for(i=0;i<3;i++) for(j=0;j<4;j++) { printf("%d\n",(**(p+i)+j)); //这里的*P还是指向的地址数据,只要指向的是地址,加1始终认为是地址的加1,这里变量长度为4; } return (0); }*/ #include <stdio.h> int main() { int a[3][4]; int i,j; int (*p)[4]; p=a; for(i=0;i<3;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); } for(i=0;i<3;i++) for(j=0;j<4;j++) { printf("%d\n",*(*(p+i)+j)); //这里的*P还是指向的地址数据,只要指向的是地址,加1始终认为是地址的加1,这里变量长度为4; } return (0); }