Possible Duplicate:
Static variable initialization?
why global variable in C takes zero as initial value?
Possible Duplicate:
Static variable initialization?
why global variable in C takes zero as initial value?
This required for a compiler to conform to the C standard.
The reason for the design choice is likely that having random garbage in your uninitialized variables makes errors much harder to detect.