title: Why does long long n = 2000*2000*2000*2000; overflow?
body: <pre><code>long long int n = 2000*2000*2000*2000;    // overflow
  
  long long int n = pow(2000,4);            // works
  long long int n = 16000000000000;         // works
  </code></pre>
  <p>Why does the first one overflow (multiplying integer literal constants to assign to a long long)?</p>
  <p>What's different about it vs. the second or third ones?</p>