有以下程序:    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]);       pr

admin2013-02-23  21

问题 有以下程序:    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[2]的地址传递给了sum函数中的形参a[],使得sum函数中的(a+0)为主函数中a[2]的址,所以 a[-1]即*(a-1)的值为主函数中a[1]的值;a[1]即*(a+1)的值为主函数中a[3]的值,故函数sum中a[0]=2+4,由于此函数中的 a是指向主函数中的a[2],所以主函数中的a[2]的值即为6。
转载请注明原文地址:https://kaotiyun.com/show/pBJp777K
0

最新回复(0)