我正在研究静态变量,我在 wikipedia 上遇到了这段代码。静态 int x 在整个程序中存储它的值。即使我们在全局范围内声明它,它也会存储以前的值。这是否意味着静态变量和全局变量被视为相同。如果不是,两者如何工作?
#include <stdio.h>
void func() {
static int x=0;
// x is initialized only once across three calls of func()
printf("%d\n", x); // outputs the value of x
x = x + 1;
}
int main(int argc, char *argv[]) {
func(); // prints 0
func(); // prints 1
func(); // prints 2
return 0;
}