title: strcmp confusion
body: <p>To my knowledge the standard strcmp function looks something like this:</p>
  
  <pre><code>int strcmp(const char* string1, const char* string2)
  {
      while(*pString1++ == *pString2++)
      {
          if(*pString1 == 0) return 0;
      }
      return *pString1 - pString2;
  }
  </code></pre>
  
  <p>My question is that wouldn't this increment the pointers passed into strcmp? In the following example it seems like it would trash the pointers and cause invalid stuff to happen.</p>
  
  <pre><code>const char* string1 = "blah";
  const char* string2 = "blah";
  const char* string3 = "blah";
  if(strcmp(string1, string2) {doSomething();} 
  // Won't this make string1 = "" because it incremented the pointer to the end?
  else if (strcmp(string1, string3) {doSomethingElse();}
  </code></pre>
  
  <p>Sorry I'm just confused because it seems like if I pass a pointer into strcmp, I shouldn't expect that pointer to suddenly hold an empty string. It seems like strcmp should take const char* const. Am I totally misunderstanding something?</p>