随着static
在C
一个能保持一个stack
变量四周,创建功能甚至存在了.
但是,在这种情况下,
void static_func() {
static int var = 1;
var += 1;
}
Run Code Online (Sandbox Code Playgroud)
我可以访问var
外部static_func()
并返回其值.我们假设static_func()
在该中调用三次main()
,则值为var
3.
但是,1
每次执行该功能时都会设置它.为什么我仍然得到3的价值?!
一旦你说static int var = 1;
,这个变量就被创建并初始化了.这种情况只会发生一次,否则你会用无用的重复内容充斥你的记忆,因为这个变量将在整个程序运行时保持活跃状态.