Menu
Coddy logo textTech

Wskaźniki i tablice

Lekcja 6 z 14 w kursie Wskaźniki w C++ w Coddy.

Teraz, gdy znasz już wskaźniki stałe i wskaźniki do stałych oraz znasz różnicę między nimi, możemy przejść do związku między wskaźnikami a tablicami.

Gdy deklarujemy tablicę, jej nazwa jest w rzeczywistości wskaźnikiem stałym do wartości, która nie jest stała, więc adres, na który wskazuje wskaźnik, jest stały i nie można go zmienić, natomiast przechowywaną przez niego wartość można zmienić. 

Jeśli mamy int list[10];, to list jest w rzeczywistości int * const, a list ma tę samą wartość co &list[0]


int list[] = {10, 20, 30, 40, 50};
cout << "First: " << *list << endl;
cout << "Third: " << *(list + 2) << endl;
int *ptr = list;
cout << "First again: " << *ptr;
Output:
First: 10
Third: 30
First again: 10

Jak widać, możemy użyć nazwy tablicy list jako wskaźnika do pierwszego elementu i wykonać potrzebne nam zadania. Jedynym ograniczeniem przy używaniu samego wskaźnika tablicy jest to, że nie możemy go zmienić. Gdy natomiast utworzymy wskaźnik ptr, który wskazuje na tę samą pamięć co list, możemy później zmienić jego położenie w programie, na przykład:


int list[] = {10, 20, 30, 40, 50};
int *ptr = list;
for(int i = 0; i < 5; i++)
    cout << *ptr++ << " ";
Output:
10 20 30 40 50

quiz iconSprawdź się

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

quiz iconSprawdź się

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

quiz iconSprawdź się

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

challenge icon

Wyzwanie

Łatwy

Nie zmieniaj żadnego z domyślnych fragmentów kodu. Utworzono tablicę o nazwie numbers. Użyj wskaźnika numbers i dereferencji, aby wypisać wszystkie parzyste elementy tablicy, oddzielając je spacją.

Spróbuj swoich sił

#include <iostream>

using namespace std;

int main() {
    // NIE ZMIENIAJ KODU PONIŻEJ
    int n, x;
    cin >> n;
    int numbers[n];
    for(int i = 0; i < n; i++)
        cin >> numbers[i];
    // NIE ZMIENIAJ KODU POWYŻEJ

    // Wpisz tutaj swój kod

    return 0;
}

Wszystkie lekcje w sekcji Wskaźniki w C++

Poćwicz samodzielnie: Kompilator C++ online