静态局部变量
【代码demo】
打印0,3
gcc -S 文件.c的汇编码
【规则】
static局部变量的初始化语句只会执行一次,下次再运行该初始化语句就不会被初始化,但是它可以被多次赋值。
【静态局部变量的特性】
- 存储位置:处于静态存储区,当用 static 修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区;
- 初始化操作:未经初始化的局部静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化);
- 作用域:为局部作用域,即当定义它的函数结束的时候,作用域随之结束(不能被访问)。但是静态局部变量在离开作用域之后,并没有被销毁,而是仍然保存在内存当中,直到程序结束。
参考
https://zhuanlan.zhihu.com/p/112027143