title: What's the meaning of "&&" when operated by a char * on a char in C++?
body: <p>I came across a code which extracted a token(c string) from a given string,but I am confused by the 5th line:<code>tok &amp;&amp; *tok</code>. I just cannot figure out this operation's result. Does anybody happen to know?</p>
  
  <pre><code>const char* getfield(char* line, int num)
  {
      const char* tok;
      for (tok = strtok(line, ";");
              tok &amp;&amp; *tok;
              tok = strtok(NULL, ";\n"))
      {
          if (!--num)
              return tok;
      }
      return NULL;
  }
  </code></pre>
  
  <p>Thank you!</p>