Menu
Coddy logo textTech

Wskaźniki i tablice

Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 5 z 56.

Tablice i wskaźniki mają w C++ szczególną relację. Gdy deklarujesz tablicę, jej nazwa w rzeczywistości działa jak wskaźnik do pierwszego elementu tej tablicy. To powiązanie pozwala używać wskaźników do pracy z tablicami na wiele sposobów.

Rozważ tę deklarację tablicy:

int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers;  // ptr wskazuje teraz na numbers[0]

Tutaj numbers jest równoważne &numbers[0] — oba wyrażenia dają adres pierwszego elementu. Wskaźnik ptr wskazuje teraz to samo miejsce.

Gdy masz już wskaźnik do tablicy, możesz używać arytmetyki wskaźników, aby poruszać się po jej elementach. Dodanie 1 do wskaźnika przesuwa go do następnego elementu tego samego typu:

ptr++;        // Teraz wskazuje na numbers[1]
ptr = ptr + 2; // Teraz wskazuje na numbers[3]

Możesz dereferencjonować wskaźnik w dowolnej pozycji, aby uzyskać dostęp do wartości: *ptr daje wartość w bieżącej pozycji, a *(ptr + 1) daje wartość następnego elementu.

Ta relacja między wskaźnikiem a tablicą umożliwia iterowanie po tablicach za pomocą wskaźników zamiast tradycyjnych pętli opartych na indeksach, oferując alternatywne podejście do przechodzenia przez tablicę.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który używa wskaźnika do przechodzenia przez tablicę i wyświetlania każdego elementu, demonstrując zależność między wskaźnikami a tablicami.

Otrzymujesz następującą tablicę:

int values[6] = {15, 23, 8, 42, 17, 31};

Twój program powinien:

  1. Utworzyć wskaźnik o nazwie ptr, który wskazuje na pierwszy element tablicy values
  2. Użyć arytmetyki wskaźników, aby przejść przez wszystkie 6 elementów tablicy
  3. Wyświetlić każdy element przez dereferencję wskaźnika na każdej pozycji
  4. Przesunąć wskaźnik na następny element za pomocą arytmetyki wskaźników (zwiększyć wartość wskaźnika)

Wyświetl każdy element w osobnym wierszu w następującym formacie:

Element: [value]

Wynik powinien przedstawiać wszystkie 6 elementów w kolejności, w jakiej występują w tablicy, uzyskanych przez dereferencję wskaźnika, a nie przez indeksowanie tablicy.

Spróbuj swoich sił

#include <iostream>
using namespace std;

int main() {
    // Dana tablica
    int values[6] = {15, 23, 8, 42, 17, 31};
    
    // TODO: Utwórz wskaźnik o nazwie 'ptr', który wskazuje na pierwszy element tablicy
    
    // TODO: Użyj pętli, aby przejść przez wszystkie 6 elementów za pomocą arytmetyki wskaźników
    // TODO: Wypisz każdy element, dereferencjonując wskaźnik
    // TODO: Przesuń wskaźnik na następny element za pomocą arytmetyki wskaźników
    
    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 przepływ programu

Poćwicz samodzielnie: Kompilator C++ online