Wskaźniki C++
Tworzenie wskaźników
Z poprzedniego rozdziału dowiedziałeś się, że możemy uzyskać adres pamięci zmiennej za pomocą &
operatora:
Przykład
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)
Wskaźnik jest jednak zmienną, która przechowuje adres pamięci jako swoją wartość .
Zmienna wskaźnikowa wskazuje typ danych (np . int
lub string
) tego samego typu i jest tworzona za pomocą *
operatora. Adres zmiennej, z którą pracujesz, jest przypisany do wskaźnika:
Przykład
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";
Przykład wyjaśniony
Utwórz zmienną wskaźnikową o nazwie ptr
, która wskazuje na zmienną string
, używając znaku gwiazdki
*
( string* ptr
). Zauważ, że typ wskaźnika musi odpowiadać typowi zmiennej, z którą pracujesz.
Użyj &
operatora do przechowywania adresu pamięci zmiennej o nazwie food
i przypisz go do wskaźnika.
Teraz ptr
przechowuje wartość food
adresu pamięci 's.
Wskazówka: Istnieją trzy sposoby deklarowania zmiennych wskaźnikowych, ale preferowany jest pierwszy sposób:
string* mystring; // Preferred
string *mystring;
string * mystring;