C语言提问.会的麻烦帮个忙

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:43:46
下面程序的输出结果是
int aa[3][3]={{2},{4},{6}};
main()
{ int i,*p=aa[0];
for(i=0;i<3;i++)
{ switch(i)
{ case 0 :
aa[i][1]=* p+1; break;
case 1:
aa[i][1]=aa[i][0]*2; break;
default : ++p;
}
printf(“%d”,*p);
}
}

A 223 B 236 C 234 D 226
求解答案为什么是223 完全不懂。还望分析分析

i==0时,p指向第一个元素a[0][0],输出2,并a[0][1] = 2+1 就是3
i==1时,p指向第一个元素,输出2
i==2时,++p,p指向第二个元素a[0][1],输出3
以上

第一个for循环,i=0,执行aa[i][1]=* p+1; break; 此时的*p没有变化,还是等于aa[0]=2; 所以输出2
第二个for循环,i=1;执行aa[i][1]=aa[i][0]*2; break; 此时的*p没有变化,还是等于aa[0]=2; 所以输出2
第三个循环,i=2,执行default : ++p; 此时p=2+1=3,所以输出3,
所以最后的结果为223.