在C中创建一个静态变量

Sto*_*ace -1 c

随着staticC一个能保持一个stack变量四周,创建功能甚至存在了.

但是,在这种情况下,

void static_func() {
    static int var = 1;
    var += 1;
}
Run Code Online (Sandbox Code Playgroud)

我可以访问var外部static_func()并返回其值.我们假设static_func()在该中调用三次main(),则值为var3.

但是,1每次执行该功能时都会设置它.为什么我仍然得到3的价值?!

For*_*Bru 6

一旦你说static int var = 1;,这个变量就被创建初始化了.这种情况只会发生一次,否则你会用无用的重复内容充斥你的记忆,因为这个变量将在整个程序运行时保持活跃状态​​.