title: Subtracting two following addresses that containing ints returns 1 and not 4 as expected
body: <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      int a[5] = {1,2,3,4,5};
      int *p = a;
      int *q = p++;
      int b = p-q;
      printf(&quot;%d&quot;, b);
      return 0;
  }
  </code></pre>
  <p><code>p</code> is pointing on the <code>2</code> and <code>q</code> is pointing to the <code>1</code>.
  I know that Integer takes <code>4</code> bytes in the memory, so correct me if I am wrong, but for example if the address of <code>a[0]</code> is <code>1000</code>, then the address of <code>a[1]</code> will be <code>1004</code></p>
  <p>if so, why does subtracting these addresses give us <code>1</code> and not <code>4</code>?</p>