一、局部变量
在一个函数内部定义的变量是内部变量,它们只在函数范围内有效,即就是只有本函数能够使用它们,在函数以外不能够使用,如果使用就会出现变量未定义的错误。这些内部变量称为局部变量。
注意:主函数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函数都可以使用这两个全局变量。
在编写程序时,我们可以根据实际情况合理的使用全局变量和局部变量,但是全局变量应该尽量少用,在一些较大的程序中使用全局变量,会降低程序的可靠性和通用性。由于当全局变量和局部变量同名时,全局变量会被屏蔽,此时局部变量起作用。