void count()
{
static int a =1;
a++;
printf("a=%d\n",a);
}
int main()
{
int i=0;
while(i<5)
{
count();
i++;
}
return 0;
}
从上边一段代码可以看出 变量 a是由static来修饰。输出的结果为23456
void count()
{
int a =1;
a++;
printf("a=%d\n",a);
}
int main()
{
int i=0;
while(i<5)
{
count();
i++;
}
return 0;
}
以上代码没有用static来修饰变量a 输出结果为2222
有时候,我们希望函数中局部变量的值,在被调用结束之后不会消失,仍然保存原来的值,这时候,我们可以选择用static来修饰变量。即他所占用的内存空间不释放static修饰全部变量(或者函数),改变了作用域(或者说改变了外部链接属性),让静态的全局变量只能在自己的源文件内部使用,外部文件用extern就无法调用了,会提示无法解析外部符号。所以第一段代码输出的结果为23456。
假如用static来修饰全局变量的话,则只能在自己的源文件内部使用,其他文件不能使用。