Memory allocation in the reverse order of declaring in C++
<p>In the following code, I am wondering why the order of allocation is "c, b, a" and not "a, b, c", as I can see from the variables' adresses</p>

<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
    int a, b, c;
    cout &lt;&lt; "address a: " &lt;&lt; &amp;a &lt;&lt; '\n';
    cout &lt;&lt; "address b: " &lt;&lt; &amp;b &lt;&lt; '\n';
    cout &lt;&lt; "address c: " &lt;&lt; &amp;c &lt;&lt; '\n';
    return 0;
}
</code></pre>

<p>The output is the following:</p>

<pre><code>address a: 0x28fefc
address b: 0x28fef8
address c: 0x28fef4

Process returned 0 (0x0)   execution time : 0.056 s
Press any key to continue.
</code></pre>