一、局部变量

        在一个函数内部定义的变量是内部变量,它们只在函数范围内有效,即就是只有本函数能够使用它们,在函数以外不能够使用,如果使用就会出现变量未定义的错误。这些内部变量称为局部变量。

        注意:主函数main中定义的变量也只能在main函数内部使用,主函数也不能使用其他函数定义的变量。但是,不同函数可以使用同名的变量,它们之间互不干扰。特别的:形式参数也是局部变量。

例如:

                                          #include <stdio.h>

                                          void fun()

                                          {

                                                 int num=10;

                                                       num++;

                                                 printf("fun->%d\n",num);

                                          }

                                          int main()

                                          {

                                                  int  i=0;

                                                  for(i=0;i<10;i++)

                                                         fun();

                                                  return 0;

                                          }

其中,num是fun函数中定义的局部变量,只在fun函数内部起作用,main函数中不能够使用fun函数中定义的num变量。同理,i是main函数中定义的局部变量,也只在main函数中有效。

 

 

二、全局变量

        在函数之外定义的变量是全局变量,也称外部变量。全局变量的有效范围从定义变量的位置开始到文件结束。

        注意:一般情况下,尽量不要使用全局变量,它会使程序的通用性降低。若在一个源文件中,全局变量与局部变量同名,全局变量会被屏蔽,此时局部变量起作用。

 例如:

                                          #include <stdio.h>

                                          int num=10,i=0;

                                          void fun()

                                          {

                                                 num++;

                                                 printf("fun->%d\n",num);

                                          }

                                          int main()

                                          {

                                                  for(i=0;i<10;i++)

                                                         fun();

                                                  return 0;

                                          }

          其中,num和i就为定义的全局变量,它的作用范围到程序结束。fun和main函数都可以使用这两个全局变量。

          在编写程序时,我们可以根据实际情况合理的使用全局变量和局部变量,但是全局变量应该尽量少用,在一些较大的程序中使用全局变量,会降低程序的可靠性和通用性。由于当全局变量和局部变量同名时,全局变量会被屏蔽,此时局部变量起作用。