A block is essentially an OC object that also has an ISA pointer inside it

A block encapsulates the OC object of a function call and its calling environment

The default local variable auto is an automatic variable that is destroyed when out of scope

Global global

Stack stack area

The malloc heap area