问题
单项选择题
有以下程序( ) #include<stdio.h> 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); } 执行后输出结果是
A.10
B.9
C.7
D.8
答案
参考答案:C
解析: #include<stdio.h> int a=2: int f(int*A) {return(*A)++;}/*返回值是*A,因为参数传递是地址传递,实参的实际值将被改变*/ main() {int s=0; {inta=5;s+=f(&a);}/*此处使用的a是本段"{}"内所定义的变量a*/ s+=f(&a);/*此处使用的a是全局变量a*/ printf("%d\n",s); }