问题
单项选择题
有以下程序:
#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就是这个全局变量。