I was wondering if this is the right way to think about pointers (*operator), addresses (& operator) and variables. I'm giving a simplified explanation in the black boldface text, and a more technical one in red.
I'm trying to create a simplistic mental map in my head so I can instinctively remember what all these components actually are. (Sort of like a pneumonic device). I'm having trouble wrapping my head around the relationships between the three concepts
-A pointer variable---which is denoted by the *operator (indirection)---is like an arrow that can point to an address. It is technically a variable that can store an address. You will have to initialize it to an address with the &operator for it to point to something.
-An address---which is denoted by the &operator---is like the physical location that stores a value of the variable of interest to the user. It corresponds with a physical byte location in memory.
-A variable is the data (of a certain type---int, float, char, etc) that the user wants to store. A sequence of 1's and 0's located at a physical address in memory