有以下程序
main()
int a[3][2]=0,(*ptr)[2],i,j;
for(i=0;i<2;i++) ptr=a+i; scanf("%d",ptr); ptr++;
for(i=0;i<3;i++)
for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
若运行时输入:1 2 3<回车>,则输出结果是
A.产生错误信息
B.1 0
2 0
0 0
C.1 2
3 0
0 0
D.1 0
2 0
3 0
参考答案:B
解析:二维数组指针第一个for循环中,第一次循环ptr指向a[0][0]的首地址,所以经过输入语句,a[0][0]=1;第二次循环ptr指向a[1][0]的首地址,所以经过输入语句,a[1][0]=2。此时,除了这两个元素,其他元素没有改变,等于初值0。