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ści2. 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 adresuJak 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
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŁatwyWczytaj 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++
1Podstawy wskaźników
Wprowadzenie do wskaźnikówDeklaracja i inicjalizacjaArytmetyka – przypisanieArytmetyka – operacjeWskaźniki stałeWskaźniki i tablice2Wskaźniki i referencje
Wskaźniki jako parametryReferencje - &Referencje jako parametryWskaźniki a referencje3Dynamiczna alokacja pamięci
Operatory new i deleteWycieki pamięciTablica dynamicznaTablica dynamiczna — wstawianiePoćwicz samodzielnie: Kompilator C++ online