有以下程序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
- A10
- B9
- C7
- D8
有以下程序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
在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效,也就是说,只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。本题中的int a=5;只在{int a=5;s+=f(&a);}内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用,它的有效范围为:从定义变量的位置开始到本源文件结束。本题的开头int a=2;即为全局变量,实际上起作用的也就是这个。故本题答案为C。