Menu
Coddy logo textTech

Operator pobrania adresu (&)

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 3 z 63.

Skoro potrafisz już deklarować wskaźniki, musisz nauczyć się, jak faktycznie zapisywać w nich adres pamięci. Operator pobrania adresu (&) pozwala uzyskać adres pamięci dowolnej zmiennej.

Gdy umieścisz operator & przed nazwą zmiennej, zwróci on adres pamięci, pod którym ta zmienna jest przechowywana. Pomyśl o tym jak o pytaniu: „Gdzie ta zmienna znajduje się w pamięci?”

int age = 25;
int *ptr;
ptr = &age;    // Zapisz adres 'age' w 'ptr'

W tym przykładzie &age zwraca nam adres pamięci zmiennej age. Następnie przypisujemy ten adres do naszego wskaźnika ptr. Teraz ptr „wskazuje na” zmienną age.

Operator pobrania adresu jest niezbędny, ponieważ stanowi pomost między zwykłymi zmiennymi a wskaźnikami. Bez niego nie można wskazać wskaźnikowi, na którą zmienną ma wskazywać. Pamiętaj, że typy danych muszą być zgodne — możesz przypisać adres liczby całkowitej tylko do wskaźnika zadeklarowanego dla liczb całkowitych.

challenge icon

Wyzwanie

Łatwy

Napisz program w C, który demonstruje użycie operatora pobrania adresu do łączenia zmiennych ze wskaźnikami. Twój program powinien:

  1. Zadeklarować zmienną całkowitą o nazwie number i zainicjalizować ją wartością 42
  2. Zadeklarować zmienną znakową o nazwie letter i zainicjalizować ją wartością 'X'
  3. Zadeklarować wskaźnik do liczby całkowitej o nazwie num_ptr
  4. Zadeklarować wskaźnik do znaku o nazwie char_ptr
  5. Użyć operatora pobrania adresu, aby przypisać adres number do num_ptr
  6. Użyć operatora pobrania adresu, aby przypisać adres letter do char_ptr
  7. Wyświetlić adresy przechowywane we wskaźnikach za pomocą printf i specyfikatora formatu %p

Wynik powinien wyświetlać adresy wskaźników w następującym formacie:

Address of number: [address]
Address of letter: [address]

Rzeczywiste adresy pamięci będą się różnić w kolejnych uruchomieniach programu, ale format i etykiety muszą dokładnie odpowiadać powyższemu przykładowi. [address] to symbol zastępczy wyświetlanego adresu: nie wyświetlaj nawiasów kwadratowych.

Spróbuj swoich sił

#include <stdio.h>

int main() {
    // TODO: Napisz tutaj swój kod
    // 1. Zadeklaruj i zainicjalizuj zmienne
    // 2. Zadeklaruj wskaźniki
    // 3. Użyj operatora pobrania adresu, aby przypisać adresy
    // 4. Wyświetl adresy w pokazanym formacie
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online