An address is the numeric identifier for a memory location. The term may also be used for other storage allocation identifiers -- for example, a logical block address on a disk identifies a block or sector on that disk using a unique number.
Each memory location is identified by a unique numeric address. The maximum number of unique memory locations is dictated by the width of the address in bits; for example, a 32-bit address can refer to any of 232 addresses, limiting memory to 4GB.
Most modern CPUs with a memory management unit (MMU) separate physical memory addresses from virtual memory addresses -- in other words, they can renumber memory. This feature is usually used on a per-process basis by the operating system, to present a different view of memory to each process.
It is not necessary to fully populate the address space -- a computer with a 32-bit address bus may only have 1GB of installed memory. Reading unpopulated memory locations will typically lead to undefined results.