title: Incrementing C pointers
body: <p>I thought that if a c pointer pointing to a char array was incremented then it would point to the next element in that array. But when I tried this I found that I had to increment it twice. Trying the increment using sizeof(char) I found that adding the size of a char was too much so it had to be divided by two. </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(int argc, char * argv[]){
     char *pi;
     int i;
     pi = argv[1];
     printf("%d args.\n",argc-1);
     printf("input: ");
     for(i=0;i&lt;argc-1;i++){
        printf("%c, ",*pi);
        /*The line below increments pi by 1 char worth of bytes */
        //pi+=sizeof(pi)/2;
        /* An alternative to the above line is putting pi++ twice - why? */
        pi++;
        pi++;
     }
     printf("\n");
     return 0;
  }
  </code></pre>
  
  <p>Am I doing something wrong? or am I misunderstanding the method of incrementing pointers?</p>