title: I dont understand the while statement in this loop (pointers in C)
body: <pre><code>#include &lt;stdio.h&gt;
  
  char* g(char* s) {
      char* z = s;
      while(*z++ &amp;&amp; *z++) s++;
      return s;
  }
  
  int main() {
      char s[6];
      s[0] = 'a';
      s[1] = 'b';
      s[2] = 'c';
      s[3] = 'd';
      s[4] = 'e';
      s[5] = 'f';
      //s[6] = 'g';    
      printf(&quot;%s\n&quot;,g(s));
      return 0;
  }
  </code></pre>
  <p>This code will output a string &quot;def&quot; but I do not know how to explain the while condition above.</p>