static:在C语言中:
static是用来修饰变量和函数的
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
1:static修饰局部变量时,局部变量的生命周期会变长,变量存放的位置也从栈区变成了静态区;比如一个变量放在一个循环中时,它的生命周期或者说作用域只能在循环中使用,出了循环就销毁了。如果出循环时,该变量发生了值的变化,但是下一次进入循环还是初始值;但是用static修饰时,下一次进入循环时会将上一次变化了的值进入循环,不会再初始化。
//代码2
#include <stdio.h>
void test()
{
//static修饰局部变量
static int i = 0;
i++;
printf("%d ", i);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0;上面的代码就是这样的,没有static修饰打印的是10个2;有的话就是2到11;
2:一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使用。
上面函数是可以正常使用的,但是用static修饰的话就不能再另外一个源文件中正常使用函数了。
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。和全局变量一样的道理;
版权声明:本文为qq_68844357原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。