C++ ukazatele
Vytváření ukazatelů
Z předchozí kapitoly jste se dozvěděli, že paměťovou adresu proměnné můžeme získat pomocí &
operátoru:
Příklad
string food = "Pizza";
// A food variable of type string
cout <<
food; // Outputs the value of food (Pizza)
cout << &food; // Outputs the memory address of food (0x6dfed4)
Ukazatel je však proměnná, která ukládá adresu paměti jako svou hodnotu .
Proměnná ukazatel ukazuje na datový typ (jako int
nebo string
) stejného typu a je vytvořena *
operátorem. Adresa proměnné, se kterou pracujete, je přiřazena ukazateli:
Příklad
string food = "Pizza"; // A food variable
of type string
string* ptr =
&food; // A pointer variable, with the name
ptr, that stores the
address of food
// Output the value of food (Pizza)
cout << food << "\n";
// Output
the memory address of food (0x6dfed4)
cout << &food << "\n";
//
Output the memory address of food with the pointer (0x6dfed4)
cout <<
ptr << "\n";
Příklad vysvětlen
Vytvořte proměnnou ukazatele s názvem ptr
, která ukazuje na proměnnou string
, pomocí znaku hvězdičky
*
( string* ptr
). Všimněte si, že typ ukazatele musí odpovídat typu proměnné, se kterou pracujete.
Pomocí &
operátoru uložte paměťovou adresu proměnné s názvem food
a přiřaďte ji k ukazateli.
Nyní ptr
obsahuje hodnotu food
adresy paměti 's.
Tip: Existují tři způsoby, jak deklarovat proměnné ukazatele, ale preferován je první způsob:
string* mystring; // Preferred
string *mystring;
string * mystring;