title: Why pointer incrementing only once
body: <p><code>*char_ptr++ -= 0x20</code></p>
  
  <p>Why that expression increments pointer just once? This expression can be decomposed like</p>
  
  <p><code>*char_ptr++ = *char_ptr++ - 0x20</code></p>
  
  <p>That means pointer must be incremented twice. First time on the right side, and second on the left. But this incremented just by once.</p>
  
  <p>This expression is the part of the function below</p>
  
  <pre><code>void to_lower_case(char *char_ptr)
  {
      while(*char_ptr)
      {
          if (*char_ptr &lt; 0x41)
          {
              printf("\nInvalid login\n");
              exit(0);
          }
          if (*char_ptr &gt; 0x5A)
              *char_ptr++ -= 0x20;// *char_ptr++ = *char_ptr++ - 0x20
      }
  }
  </code></pre>