title: Incrementing pointers in C arrays
body: <p>I'm trying to understand the below program. Specifically, the definition of  <code>cur_name</code> and the incrementing of the pointer for <code>cur_age</code> in the printf statement.</p>
  
  <p><code>*(cur_age + i)</code> must be indexing each of the integers in the array but I would have expected this to point to successive addresses in memory and not the next integer given ints are 4 bytes? i.e. why not i+4</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(int argc, char *argv[])
  {
      int ages[] = {23, 43, 12, 89};
      char *names[] = {"Anne", "Kay", "Joe", "Pete"};
      int count  = sizeof(ages) / sizeof(int);
      int *cur_age = ages;
      char **cur_name = names;
  
      for (int i = 0; i &lt; count; i++) {
          printf("%s is %d years old.\n", *(cur_name + i), *(cur_age + i));
      }
  
      return 0;
  }
  </code></pre>