An address is a unique location on a blockchain network, which can receive, hold and send tokens. Every address consists of two parts: a public key and a private key.
The idea is that it is safe to share one’s public key widely to receive funds, much like an email address; while the private key is especially sensitive and needs to be kept private, and has the power to send funds by signing transactions, similar to a password.
Every public key and private key pair is linked by a special cryptographic algorithm, which allows them to function in the manner described above. When written in text, the keys look like a long string of unintelligible letters and numbers which can be very hard to remember. This is where wallets are useful.