How should I "read" a dereference operator?
I always read 
*y =1
as: assign the value $1$ to the memory location pointed by y.

Why?

y is a pointer type variable, so it has an address as a value. It another words, it points to this address. When we want to, indirectly,  manipulate the memory area pointed by y we use *y. Hence *y=1 tells that the value $1$ should be stored in the memory location pointed by y.