int main() { int a[3][2]={0},(*ptr)[2],i,j; for(i=0;i<2;i++) { ptr=a+i; scanf("%d",ptr); } for(i=0;i<3;i++) { for(j=0;j<2;j++) printf("%2d",a[i][j]); printf("\n"); } }
产生错误信息
1 0 2 0 0 0
1 2 3 0 0 0
1 0 2 0 3 0
第一个for循环中,ptr分别取0,1。ptr取0,则读取数组中第一行;ptr取1,则读取第二行(而不是第一行第二列);因为ptr的定义是数组指针且长度为2.
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题