ok .. I am confused when it comes to memory ...

Say, when someone stores a file ID at a certain location in memory...

Code:
#define FILE_ID 0xFA34AF    // or whatever hexadecimal number
or does this ...

Code:
case 0xFA6A3:   // or whatever hexadecimal number again
I don't know if these are relavent questions.. or if I am even asking the right questions...

How is this address available, and how do programmers know where to store a variable, or macro?

Can a programmer accidently use the addresses of memory from another program, or process?

Is there a certain local memory block that is available for use to program with, that is not used for the OS, or other processes? (ex. heap, stack)

What address does the memory start with?

Is it different on all computers?

Where is the memory, used to program, stored on a computer?

It just that everytime I look at a program that has a hexidecimal address... i get confused...