问题 单项选择题

以下程序
int aa[3][3]=2,4,6;
main()
int i,*p=&aa[0][0];
for(i=0;i<2;i++)
if(i==0)aa[i][i+1]=*p+1;
else ++p;
printf("%d",*p);


的输出是______。

A.23

B.26

C.33

D.36

答案

参考答案:A

解析:[评析] 观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中, i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

选择题
单项选择题