问题
单项选择题
有以下程序: void sum(int a[]) { a[0]=a[-1]+a[1]; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]); } 程序运行后的输出结果是( )。
A.6
B.7
C.5
D.8
答案
参考答案:A
解析: sum()函数接收一个int型数组作参数,也可以把它看作是一个int型指针,语句 a[0]=a[-1];的意思就是将参数指针向内容的前一个元素和后一个元素的值相加放到指针所指的位置。因此,主函数中调用sum(&a[2]);的意思就是让a[2]=a[1]+a[3];,所以最后输出的结果是6。应该选择A。