下面程序: void func (int *a,int b[]) { b[0] =*a+6;) main() { int a,b[5]; a=0; b[0]=3; func(&a,b); print

admin2009-04-15  27

问题 下面程序:    void func  (int *a,int b[])    {    b[0]  =*a+6;)    main()    {  int a,b[5];     a=0;  b[0]=3;    func(&a,b);    printf("%d\n",b[0]);    }    则程序运行后的输出结果是(  )。

选项 A、6
B、7
C、8
D、9

答案1

解析 在函数的形参中使用int*类型和使用int[]类型并无区别,两者都可用宋传递数组名或指针变量,所以func()函数的形参是两个指针a和b,又因为b[0]亦可写成*b,所以表达式b[0]=*a+6也可以写成*b=*a+6,其意思是:将a所指内容加上6赋给 b所指内容。所以主函数中对func()的调用func(&a,b)可看成b[0]=a+6,所以最后b[0]的结果为6。正确答案为选项A。
转载请注明原文地址:https://kaotiyun.com/show/AsWp777K
0

最新回复(0)