When subtracting two pointers in C
<p>I was playing with pointers in order to fully get the concept and then wanted to subtract two pointers expecting the distance between these two addresses or something, but apparently I was wrong, so here is my code.</p>

<pre><code>int x = 5, y = 7;
int *p = &amp;y;
int *q = &amp;x;
printf("p is %d\nq is %d\np - q is %d", p, q, (p - q));
</code></pre>

<p>Why does the program output <code>p - q is 1</code>? Thank you.</p>