c程序语言,挺急的

来源:百度知道 编辑:UC知道 时间:2024/06/14 07:52:03
运行以下程序时,输入1 2 3 <回车>的输出结果为---B
A)产生错误信息
B)1 0
2 0
0 0
C)1 2
3 0
0 0
D)1 0
2 0
3 0
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");
}
}

答案是B,就是不明白程序为什么运行出来是这,能帮忙解释一下吗,谢谢啦

for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
在这里只取你输入的前两个数,1,2,你输的3没用,因为你循环只循环两次
所以结果为吧b。

{ptr=a+i;scanf("%d",ptr);ptr++;}
你是不是指针没明白,这里的指针ptr每次输入值前都先进行赋地址
ptr++不起作用