Menu
Coddy logo textTech

Wskaźniki stałe

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

Stały wskaźnik to taki, którego wartość (adres pamięci, na który wskazuje) nie może zostać zmieniona po inicjalizacji. Można jednak zmienić wartość w miejscu pamięci, na które wskazuje. Gdy mówimy o stałych wskaźnikach, wyróżniamy dwa podstawowe typy wskaźników

  • Wskaźnik do stałej — wskazuje stałą wartość
  • Stały wskaźnik — stale wskazuje wartość

Jaka jest więc różnica


1. Wskaźnik do stałej

Ten typ wskaźnika wskazuje stałą wartość. Nie można zmienić tej wartości za pomocą wskaźnika. Oznacza to, że jest to zwykły wskaźnik, który wskazuje stałą wartość; w przypadku tego wskaźnika można zmienić adres, na który wskazuje.

int a = 5, b = 10;
// Wskaźnik na stałą typu int
int const * ptr = &a;
 
// To jest dozwolone:
ptr = &b; // Zmiana adresu
 
// To nie jest dozwolone:
*ptr = 10; // Próba zmiany stałej wartości

2. Stały wskaźnik

Stały wskaźnik wskazuje wartość, która nie jest stała, ale samego wskaźnika nie można zmienić tak, aby wskazywał inny adres — adres, na który wskazuje, jest stały

int a = 5, b = 10;
// Stały wskaźnik na int
int * const ptr = &a;

// To jest dozwolone:
*ptr = 10; // Zmiana wartości, która nie jest const

// To nie jest dozwolone:
ptr = &b; // Próba zmiany stałego adresu

Jak widać, słowo kluczowe const umieszcza się przed * w przypadku wskaźnika do stałej wartości, a po * w przypadku stałego wskaźnika do wartości, która nie jest stała. Można też połączyć oba rozwiązania i utworzyć stały wskaźnik do stałej wartości. W tym celu używa się dwóch słów kluczowych const: przed gwiazdką i po niej, ale rzadko zachodzi taka potrzeba

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

Wczytaj dwie liczby z wejścia, utwórz wskaźnik stały constPtr i wskaźnik do stałej ptrConst, zainicjuj constPtr, aby wskazywał na pierwszą liczbę, a następnie zmień jego wartość na drugą liczbę, i ustaw adres ptrConst, aby wskazywał na drugą liczbę

Spróbuj swoich sił

#include <iostream>

using namespace std;

int main() {

    // Wpisz kod tutaj


    // NIE ZMIENIAJ PONIŻSZEGO KODU
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    if(&a == constPtr)
        cout << "&a == constPtr" << endl;
    if(&b == ptrConst)
        cout << "&b == ptrConst" << endl;

    return 0;
}

Wszystkie lekcje w sekcji Wskaźniki w C++

Poćwicz samodzielnie: Kompilator C++ online