>>608
ぶっちゃけていうと初心者が理解できるほど簡単な話じゃ無い。
課題を与えた人は

1. ローカル変数はスタックに順番に詰まれる。
2. スタックは後ろから前に詰まれていく。
3. だから、その型のサイズ分前の番号になる。

ぐらいにしか模範解答を考えてないと思う。
アライメントすら考慮していないし、他に何も考えていない可能性が高い。
(アライメントを考えていたら、アライメント無しでは説明不可な課題にするはず。)
でも、現実には最適化の話が絡んできて、
個々のコンパイラの動作や仕様に余程詳しくないと完全な説明は無理。
決してコンパイラは何も考えずに順番を決めているわけでは無いのだし、
それを「たまたま」とか「勝手に」という言葉で濁していてはいけないと思う。
もっと詳しく、標準的な動作はこう、この最適化オプションでこうなるからこう、
その時の順番を決めるルールはこう、という説明が本当はいると思う。
ただ、俺はそこまで詳しくないから、無理だけどね。

ということで、回答で書けなかった愚痴をここに書いておくよ。