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

admin2020-07-28  20

问题 有以下程序
#include
main()
{intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];
for(i=0;i<2;i++)
{if(i==0)aa[i+1]=*p+1;
else++p;
printf("%d",*p);
}
}
程序运行后的输出结果是

选项 A、2  6
B、2  3
C、4  3
D、4  6

答案B

解析 观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[0][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。因此B选项正确。
转载请注明原文地址:https://kaotiyun.com/show/CQ3p777K
0

最新回复(0)