有以下程序; int a=2; int f(int *A) {return(*A) ++;} main() { int s=0; { int a=5; s+=f(&A) } s+=f(&A)

admin2010-09-05  19

问题 有以下程序;
   int a=2;
   int f(int *A)
   {return(*A) ++;}
   main()
   {  int s=0;
   {  int a=5;
   s+=f(&A)
   }
   s+=f(&A)
   printf("%d\n",s)
   }
   执行后的输出结果是【  】。

选项

答案7

解析 如果局部变量与全局变量重名,在局部变量的作用域,全局变量不起作用。所以在main函数中第一次调整函数f时a=5得s=5,第二次调用函数f时a=2得s=5+2=7。函数f在执行语句return(*A) ++时首先返回*A,然后将*A的值加1。
转载请注明原文地址:https://jikaoti.com/ti/3jI0FFFM
0

最新回复(0)