Bitcoin addresses do not actually exist on the Bitcoin network. They are an abstraction for humans to be able to easily send money to each other.
What Bitcoin actually uses are transaction outputs. A transaction creates outputs which consist of the value and the output script. When you send money to someone, you are spending from an Unspent Transaction Output (UTXO) and creating new UTXOs.
When you send to an address, you are really creating a UTXO with the value you want and an output script that is specified by the address. Addresses encode a version number and some data (usually a hash). So your wallet software takes the address, decodes it, and constructs an output script based upon the data and the version number (the version number specifies what the output script format should be).
So addresses themselves do not actually exist on the network; they do not actually carry a balance nor do you actually send to or from an address. However many places will just say "balance of an address" and show such information as a convenience. This "balance" is calculated by constructing the output script an address specifies and then searching through the UTXO set for UTXOs with output scripts that match the constructed script. The values of these UTXOs are summed and that becomes the address's balance.