问题
单项选择题
有以下程序: #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
解析: 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{int a=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义int a=2;使a成为全局变量,main函数中第二个s+ =f(&a);语句中的a就是这个全局变量。