The operating system will assign an address to each variable, that is, a piece of memory, and determine the size of this memory according to the type of this data. Then each memory will have a label, which is what we call an address, which is represented by 00 12FF7C (hexadecimal representation). Then when we operate this variable, the operating system will first find the corresponding memory block according to this label, and then take out the contents of this memory. X refers to the mark of the memory where X is stored, which is what we call the address.
I don't know if I'm wordy, but I hope you can understand.