title: Difference between memory addresses of variables is constant
body: <p>I ran the following code and this is the output I got:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      int x = 3;
      int y = x;
      printf("%d\n", &amp;x);
      printf("%d\n", &amp;y);
      getchar();
      return 0;
  }
  
  Output:
  
  3078020
  3078008
  </code></pre>
  
  <p>Now, the output changes every time I run the program, but the difference between the location of x to the location of y is always 12. I wondered why.</p>
  
  <p><strong>Edit:</strong> I understand why the difference is constant. What I don't understand is why the difference is specifically 12, and why the memory address of y, who's defined later, is less than x's.</p>