Zipfian distribution, which is a simple power law. The smaller a value is the more frequently it occurs. Obviously this is not a law of nature, just an observation.
Yes, in fact, on a Windows system when a core has nothing to do it runs the "ZeroPage" process whose sole purpose is to riffle through memory clearing out pages which aren't in use. Whenever you get a page from the OS it is zero-cleared -- it saves time if that clearing happens in the background instead of at the moment you allocate the page.Does that mean something is going through and clearing that memory every so often? Actually I think I know... does the operating system do it for security reasons before giving the process more memory so that it can't access memory used by other programs?
You have to remember that C and C++ were designed back when things like this actually mattered a lot. It takes time and memory to initialize values -- time, because you need to stick the value in there. Memory, because you need to have instructions which do that, and instructions take up space. As I mentioned before, zero is often what you wanted anyway, so zero is the default.This exception I understand. There's a good reason there. Although I probably would prefer if each compiler could just pick some strange value each build (or each compiler version maybe) and use that instead of zero.