Automatic variables are held in a part of the memory which the compiler manages for you. This is nothing more than a conventional linear piece of memory treated as though you can only add and remove items at one end; this is called a stack. Adding an item is called pushing onto the stack; removing is called popping off the stack. When you pop an item, you remove the most-recently pushed. A pointer to the top of the stack is remembered and updated by the system. This is all done behind the scenes on your behalf: this is why the term ``automatic'' is used.
maspjw@