title: Default initialization of POD types in C++
body: <p>I know some <a href="https://stackoverflow.com/questions/146452/what-are-pod-types-in-c">POD</a> variables are initialized by default, but others are not. (POD types include <code>int</code>, <code>float</code>, pointers, unions, arrays of POD types, structs of POD types, etc.)</p>
  
  <p><strong>How does scope and storage class affect default initialization of POD types?</strong></p>
  
  <p>Specifically, which of the following will be initialized implicitly:</p>
  
  <ul>
  <li>Local variables with automatic storage</li>
  <li>Static local variables</li>
  <li>Static global variables</li>
  <li>External variables</li>
  <li>Variables allocated with <code>new</code></li>
  <li>POD members of a class (without explicit initialization in a constructor)</li>
  </ul>
  
  <p>I know there are existing questions relating to some of these situations, but none comprehensive (they only address specific situations).</p>