title: Condition checking: if(x==0) vs. if(!x)
body: <p>What's the differences of <code>if(x==0)</code> vs. <code>if(!x)</code>? Or are they always equivalent? And for different C++ build-in types of <code>x</code>:</p>
  
  <ul>
  <li><code>bool</code></li>
  <li><code>int</code></li>
  <li><code>char</code></li>
  <li><code>pointer</code></li>
  <li><code>iostream</code></li>
  <li>...</li>
  </ul>