INF.04 · pytanie 147
Który operator w języku C++ jest używany do uzyskiwania adresu zmiennej?
- A>
- B&Poprawna
- C*
- Ddelete
Wyjaśnienie
Operator & w języku C++ służy, w kontekście wyrażenia, do pobrania adresu obiektu w pamięci. Jeśli mamy zmienną int liczba = 10;, to zapis int* wsk = &liczba; oznacza: utwórz wskaźnik na int i wpisz do niego adres zmiennej liczba. To jest bardzo ważne przy pracy ze wskaźnikami, przekazywaniu danych do funkcji przez adres, obsłudze struktur danych oraz w starszym stylu programowania systemowego. Moim zdaniem warto od razu kojarzyć &: adres zmiennej, a *: dostęp do wartości pod adresem, bo te dwa operatory często występują razem. Przykład praktyczny: void zwieksz(int* p) { (*p)++; } można wywołać jako zwieksz(&liczba); i wtedy funkcja modyfikuje oryginalną zmienną, nie kopię. W nowoczesnym C++ często preferuje się referencje, inteligentne wskaźniki i kontenery standardowe, zgodnie z dobrymi praktykami C++ Core Guidelines, ale rozumienie operatora & dalej jest podstawą. Bez tego ciężko ogarnąć pamięć, wskaźniki, tablice dynamiczne czy interfejsy niskopoziomowe.