title: Evaluating p && *p++
body: <p>I was reading this can be inferred as short form of   </p>
  
  <pre><code>if (p) { 
   *p++;
  }
  </code></pre>
  
  <p>but not quite understanding the logic behind it.   </p>
  
  <p>My understanding is if p is false then the operator results in 0 regardless, but if p is any other value then *p++ can be evaluated, is the second portion dereferencing the value in the address pointed at p and incrementing that by 1? </p>
  
  <p>Edit: Further note, this was said to prevent null pointer access where a null pointer = 0x00000000.</p>