I draw a picture to explain you question.
Like Hurkyl said.
In a 32 bit intel CPU (which is little endian see:http://en.wikipedia.org/wiki/Little_endian)
the pointer p which is defined " char *p " is a pointer each ONE BYTE memory.
But an int variable occupy Four Bytes.
So, if you use...