static修饰变量和函数
static修饰局部变量
#include<stdio.h>
void test()
{
int a =0 ;
a = a++;
printf("%d\n", a);
}
int main()
{ int i = 0;
for (i = 0; i < 10; i++)
{
test();
}
return 0;
}
我们看下这个简单的代码 可知打印的是十次 test 这个函数的值 为1 1 1 1 1 1 1 1 1 1;
假如我们用 static修饰下a呢?
void test()
{
static int a = 0;
a = a++;
printf("%d\n", a);
}
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
test();
}
return 0;
}
在这里插入代码片
运行结果为 1 2 3 4 5 6 7 8 9 10 从中可以看出 static修饰的局部变量改变了变量的生命周期 让静态局部变量出了作用域依然存在,直到程序结束生命周期才结束。
static修饰全局变量
一个全局变量被 static修饰,将使得全局变量只能在本源文件使用,不能在其他源文件使用。
static修饰函数
一个函数被static修饰,将使得这个函数 只能在本源文件使用,不能在其他源文件引用。