This is a straight to the point guide on the differences between the three (3) Bitcoin address formats — P2PKH, P2SH, and bech32.
Pay to Pubkey Hash (P2PKH)
“Pay to Pubkey Hash” (P2PKH) is the “legacy” Bitcoin address.
It starts with a “1” and is still compatible with Bitcoin today.
Unfortunately, these address formats aren’t segwit compatible so transactions will cost more due to a larger size.
In summary: most compatible as it’s the original addressing scheme; the most expensive to use
Pay to Script Hash (P2SH)
“Pay to Script Hash” (P2SH) aka “nested segwit” starts with “3” and allow for multisig transactions — an upgrade over the legacy address type appearing above.
In summary: lower fees, allow for multi-signature (MULTISIG) transactions; more expensive to use than bech32
Bech32 aka “native segwit” is the newest Bitcoin address format. Addresses of this type start with “bc1” and are longer in length than P2PKH and P2SH addresses.
Bech32 is the preferred address format because transactions are engineered to use 16% less space and are therefore cheaper to use.
In summary: lowest transaction fees; case insensitive; not all wallets support it
Another great resource to quickly understand Bitcoin address types and their differences is (not surprisingly) Wikipedia.