I must differ with Glomek.
We who have been dealing with computers for a while (myself, 35+ years) tend to forget that we swim in a sea of abstractions that other people can find difficult or impossible to get their heads around. People learn through communication and communication depends on having common concepts (and words for those concepts) between teacher and student.
Analogies are a powerful way to introduce a new, alien concept to a beginner. They start with something that is already understood by the student and then tie it to the thing being learned. It does not have to be the baby-steps method of teaching described by Dijkstra (with whom I don't always agree, particularly when it comes to teaching), but it does have to be comprehensible to the student. In fact, a really good analogy can leapfrog the student to a new place from which many other concepts can be taught.
/end mini-rant
Here is a teaching tool I have used to help students understand the ideas of memory, labeling, and assignment.
Consider the statement:
x = x + 1
It looks like an equality statement that couldn't possibly be correct. Just telling them it's "an assignment statement" doesn't penetrate with many people. I have found a mailbox analogy to work about 95% of the time.
It goes like this: You are at the post office in front of a wall of mailboxes. The mailboxes have numbers on them (you could go into memory addressing if it was appropriate, but it's probably best to leave that out unless someone asks for a little more detail). One of the boxes has a label on it: 'x'. The statement "x = x + 1" means "take the current contents of the box labeled 'x', add '1' to it, then put the result back in the box labeled 'x'"
Often, about 60% of the students immediately go, "Oh. That's pretty straightforward." For the remainder, you could have 4 or 5 cardboard boxes. Write 'x' on a sticky note and put it on a box. Write '1' on a piece of paper ... You get the idea. Seeing this very concrete representation of memory, and that the names are 'labels' on that memory, means that this thing they have been hearing about for years, 'memory', is now nothing but a bunch of boxes you can store stuff in. Simple.
You can elaborate on this by putting multiple labels on the same box, or putting special pieces of paper in some boxes that say 'don't use me, go get/set the value of some other box', thereby demonstrating pointers. You can also demonstrate type mismatches by putting a picture in a box and then ask a student what it means to 'add 1 to a picture'. Etc, etc.
This may sound like simplistic, but in 1/2 hour or less and you have given your students a real, usable model of one of the most fundamental concepts there is.