+10  A: 

Different compilers do different things. The standard doesn't state that all variables should be initialized automatically, so many compilers don't. This means they are typically filled with garbage. Sometimes you luck out and get a block of zeros, but it's rare. Don't count on it.

JoshD
Always, always, always initialize variables. Then, even if your code is incorrect, at least it is also consistent.
John Gaughan
Initialize variables! Your life may depend on it.
karlphillip
@yan The standard doesn't state that it must be random either.
PigBen
@yan: It's a good practice to initialize all variables from the start.
Throwback1986
@yan What kind of abnormal behavior do you imagine an uninitialized variable could actually help you detect? I can't think of a case where using the value of an uninitialized variable wouldn't be a problem in its own right and in need of being solved before anything else useful could be accomplished with it.
TheUndeadFish
yan bellavance
@yan bellavance: I didn't say anything about random events. I said some compilers will initialize some things, others won't. Don't be misled by that block of zeros comment.
JoshD