有以下程序: #include <stdio.h> int a=2; int f(int *a) { return (*a) ++;} main() { int s=0; { int a=5;

admin2009-01-15  17

问题 有以下程序:    #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

答案4

解析 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用这些变量。对于main函数中的{int a=5;s+=f(&a);},a只在花括号内有效。在函数之外定义的变量称为外部变量,外部变量是全局变量,它的有效范围是从定义该变量的位置开始到本源文件结束。程序开头的定义int a=2;使a成为全局变量,main函数中第二个s+ =f(&a);语句中的a就是这个全局变量。
转载请注明原文地址:https://kaotiyun.com/show/UpHp777K
0

相关试题推荐
随机试题
最新回复(0)