有以下程序: #include <stdio.h> main( ) { int a[3][2]={0} ,( *ptr)[2],i,j; for(i=0;i<2;i++) {ptr=a+i; scanf("%d",ptr); ptr++;

admin2009-01-15  20

问题 有以下程序:  #include <stdio.h>  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 ++ ) prinff( "%2d" ,a [j] );        prinff(" \n" );    }}若运行时输入:1 2 3 <回车>,则输出结果是(   )。

选项 A、产生错误信息
B、10   20   00
C、12   30   00
D、10  20  30

答案2

解析 程序中a[3)[2]={0}将数组元素全部初始化为0,指针变量ptr指向包含2个元素的一维数组。在第一个for语句的循环体中ptr=a+i;语句用于将指针变量ptr指向第i行的数组元素,通过两次循环,分别给二维数组a的第。行的第1个元素和第1行的第1个元素赋了值1和2,即a[0][0]=1,a[1][0]=2。
转载请注明原文地址:https://kaotiyun.com/show/NzXp777K
0

最新回复(0)