1、局部变量局部变量 局部变量局部变量:也称为内部变量,是在函数内作定也称为内部变量,是在函数内作定义说明的。义说明的。其作用域仅限于函数内,其作用域仅限于函数内,离开该函数后再使离开该函数后再使用这种变量是非法的。用这种变量是非法的。说明:说明:例:例:(1)float f1(int a)float f1(int a)int b,c;int b,c;b、c有效有效a有效有效(2)main()main()int m ,n;int m ,n;m、n有效有效(3)main()(3)main()int a;int a;int c;int c;c=a+9;c=a+9;c的有效范围的有效范围a的有效范围的有
2、效范围全局变量全局变量全局变量:全局变量:也称为外部变量,它是在函数也称为外部变量,它是在函数外部定义的变量。外部定义的变量。说明:说明:全局变量不属于哪一个函数,它属于所在的源程全局变量不属于哪一个函数,它属于所在的源程序文件,其作用域是整个源程序。序文件,其作用域是整个源程序。但在一个函数之前定义的全局变量,在该函数内但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明定义。使用可不再加以说明定义。若在函数体内要将某个变量说明为若在函数体内要将某个变量说明为全局变量,全局变量,必必须在该变量前加须在该变量前加externextern。全局变量示例全局变量示例 int a=3,b=5
3、;int a=3,b=5;main()main()printf(printf(“%d,%dn%d,%dn“,a,b);,a,b);fun(void)fun(void)printf(printf(“%d,%d n%d,%d n“,a,b);,a,b);a、b有效范围有效范围void gx()void gx()extern int x,y;extern int x,y;x=135;x=135;y=x+20;y=x+20;printf(printf(“%d%d”,y);,y);x、y是全局变量是全局变量int a=3,b=5;max(int a,int b)int c;c=ab?a:b;return
4、(c);main()int a=8;printf(max=%d,max(a,b);运行结果:max=8全局变量和局部变量的应用全局变量和局部变量的应用 全局变量和局部变量同名时,在局部变量的作用范围全局变量无效。extern char c1,c2;int p=1,q=5;float f1(int a)int b,c;.int f3().char c1,c2;char f2(int x,int y)int i,j;main()int m,n;.c1,c2的作用范围p,q的作用范围c1,c2的作用范围扩展后全局变量应用全局变量应用活动:分析运行结果活动:分析运行结果int a=3,b=5;int a=3,b=5;max(int a,int b)max(int a,int b)int c;int c;c=a b?a:b;c=a b?a:b;return(c);return(c);main()main()int a=8;int a=8;printf(printf(“%d%d”,max(a,b);,max(a,b);结果:结果:8