Ukazatele vs Reference
V C++ máme dva způsoby, jak pracovat s adresami proměnných: ukazatele a reference. Oba přístupy mají své výhody a specifické použití.
Ukazatele (Pointers)
int cislo = 42;
int* ukazatel = &cislo; // Ukazatel na cislo
*ukazatel = 10; // Změna hodnoty přes ukazatel
ukazatel = nullptr; // Ukazatel může být prázdný
Ukazatele:
- Mohou být prázdné (nullptr)
- Mohou být přesměrovány na jinou proměnnou
- Vyžadují operátor * pro přístup k hodnotě
- Mohou provádět aritmetické operace (např. pole)
Reference (References)
int cislo = 42;
int& reference = cislo; // Reference na cislo
reference = 10; // Přímý přístup k hodnotě
// reference nemůže být prázdná ani změnit cíl
Reference:
- Musí být inicializovány při vytvoření
- Nemohou být prázdné
- Nemohou změnit na co odkazují
- Používají se jako normální proměnné
Kdy co použít?
- Ukazatele: Když potřebujeme možnost změnit cíl nebo pracovat s nullptr
- Reference: Když víme, že vždy budeme pracovat s platnou proměnnou
Reference jsou bezpečnější (nemohou být nullptr), ale méně flexibilní. Ukazatele jsou mocnější, ale vyžadují opatrnější zacházení. Ve většině případů doporučujeme používat reference.
Pokyny
Spusťte program a pozorujte výstup.
Začněte programovat zdarma
4/5