有以下程序: 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

admin2011-06-13  39

问题 有以下程序:    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

解析 在主函数main()中,语句“sum(&a[2]);”把数组元素a[0]的地址传递给了sun函数的形参a[],使得sum函数中的“(a+0)”为主函数中a[2]的地址,所以a[-1]的值为主函数中a[1]的值;a[1]的值为主函数中a[3]的伉,故函数sum中a[0]=2+4=6,由于此函数中的a是指向主函数中的a[2],所以a[2]的值为6。
转载请注明原文地址:https://kaotiyun.com/show/3VPp777K
0

最新回复(0)