Consider the code:
#include int x; int main (void) { }
The value of x is 0 inside main
x
0
main
It's not static. It's global. You can declare it extern in a different compilation unit, but space will be allocated for it in this one. Globals are always initialized to 0 if they aren't given initializers, by the way.
extern