问题 单项选择题

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

答案

参考答案:A

解析: 在函数的形参中使用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。

单项选择题 B型题
单项选择题