有以下程序 void f(int *q) {inti=0; for(;i<5;i++) (*q)++; } main() {int a[5]={1,2,3,4,5},i; f(a); for(i=0;i<5

admin2013-02-23  24

问题 有以下程序    void f(int *q)    {inti=0;    for(;i<5;i++)  (*q)++;    }    main()    {int a[5]={1,2,3,4,5},i;    f(a);    for(i=0;i<5;i++)printf("%d,",a);    }    程序运行后的输出结果是   

选项 A、2,2,3,4,5,     
B、6,2,3,4,5,
C、1,2,3,4,5,     
D、2,3,4,5,6,

答案B

解析  调用函数f()时,将数组a的地址传递给了指针q,此时q指向的就是数组a的第一个元素a[0]。在 5次循环过程中,q始终指向a[0],因此a[0]的值增加了5。最后的输出结果为“6,2,3,4,5”。
转载请注明原文地址:https://kaotiyun.com/show/VsJp777K
0

最新回复(0)