Normally when you refer to the contents of memory you do so using a symbolic reference called a variable name.
e.g.
X = 5Here the variable X is assigned the value 5.What this actually means is that the value 5 is stored in a memory location labelled X
The processor does not know about named memory, it can only deals with numbers. It is the job of the compiler to associated a unique number with each variable name. This number is the address of the memory where the value of the variable is located while a program is running.
e.g.
the programmer sees variables and values
X 17 Y 93 FRED 3 BERT 40 the processor sees addresses and values
100 17 101 93 102 3 103 40 The processor does not store the addresses as shown above, it calculates them each time it needs to find something. The processor actually stores the above information as
17 93 3 40 when the processor needs to access the value of FRED it calculates the address 102 and sees the value 3