私は静的変数について勉強していて、ウィキペディアでこのコードに出くわしました。static 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;
}