title: The unary increment operator in pointer arithmetic
body: <p>this is my first post.</p>
  
  <p>I have this function for reversing a string in C
  that I found.</p>
  
  <pre><code>    void reverse(char* c) {
          if (*c != 0) {
              reverse(c + 1);
          }
          printf("%c",*c);
      }
  </code></pre>
  
  <p>It works fine but if I replace:</p>
  
  <pre><code>reverse(c + 1);
  </code></pre>
  
  <p>with:</p>
  
  <pre><code>reverse(++c);
  </code></pre>
  
  <p>the first character of the original string is truncated. My question is why would are the
  statements not equivalent in this instance?</p>
  
  <p>Thanks</p>