A-A+
有以下程序:main{ int a[]=(2 4 6 8 10} y=0 x *P;p=&a
问题详情
有以下程序:
main
{ int a[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++) y+=p[x];
printf("%d\n,y");
}
程序运行后的输出结果是()。
A.A.10
B.11
C.14
D.15请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
由题目的语句P=&a[1]可知,P指向a数组中下标为1的元素“4”,又因为P为指针变量,所以P[x]与*(p+x)等价,因而在for循环语句中,第一次循环P[1]指向a数组中下标为2的元素“6”,第二次循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。