19.有以下程序 :(考察学员对数组、指针知识的理解程度。难度:较难

来源:百度知道 编辑:UC知道 时间:2024/06/21 11:53:14
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为什么?

A
函数sum的作用是把传入数组的首元素扶植,赋的值为首元素的前一个元素和后一个元素之和。
在main函数中,调用sum时传入的参数是第三个元素的首地址,所以函数sum相当于执行了a[2] = a[1] + a[3];
所以a[2]的值为6.