Stałe wskaźniki
Stały wskaźnik w C nie może zmienić adresu zmiennej, na którą wskazuje, tj. Adres pozostanie stały. Można zatem powiedzieć, że jeśli stały wskaźnik wskazuje na jakąś zmienną, to nie może wskazywać na żadną inną zmienną.
Składnia wskaźnika stałego
*const ;
Deklarację stałego wskaźnika podano poniżej:
int *const ptr;
Przyjrzyjmy się stałemu wskaźnikowi na przykładzie.
#include int main() { int a=1; int b=2; int *const ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; }
W powyższym kodzie:
znak Java na int
- Deklarujemy dwie zmienne, tj. a i b o wartościach odpowiednio 1 i 2.
- Deklarujemy stały wskaźnik.
- Najpierw przypisujemy adres zmiennej „a” do wskaźnika „ptr”.
- Następnie przypisujemy adres zmiennej „b” do wskaźnika „ptr”.
- Na koniec próbujemy wydrukować wartość zmiennej wskazywanej przez „ptr”.
Wyjście
W powyższym wyniku możemy zaobserwować, że powyższy kod generuje błąd „przypisanie zmiennej tylko do odczytu „ptr”. Oznacza to, że wartości zmiennej „ptr”, którą przechowuje „ptr”, nie można zmienić. W powyższym kodzie zmieniamy wartość „ptr” z &a na &b, co nie jest możliwe w przypadku stałych wskaźników. Można zatem powiedzieć, że stały wskaźnik, który wskazuje na jakąś zmienną, nie może wskazywać na inną zmienną.
Wskaźnik do stałej
Wskaźnik do stałej to wskaźnik, przez który nie można zmienić wartości zmiennej wskazywanej przez wskaźnik. Adres tych wskaźników można zmienić, ale nie można zmienić wartości zmiennej, na którą wskazuje wskaźnik.
Java do obiektu json
Składnia wskaźnika na stałą
const *
Deklarację wskaźnika do stałej podano poniżej:
const int* ptr;
Rozumiemy na przykładzie.
#include int main() { int a=100; int b=200; const int* ptr; ptr=&a; ptr=&b; printf('Value of ptr is :%u',ptr); return 0; }
W powyższym kodzie:
- Deklarujemy dwie zmienne, tj. a i b o wartościach odpowiednio 100 i 200.
- Deklarujemy wskaźnik do stałej.
- Najpierw przypisujemy adres zmiennej „a” do wskaźnika „ptr”.
- Następnie przypisujemy adres zmiennej „b” do wskaźnika „ptr”.
- Na koniec próbujemy wydrukować wartość „ptr”.
Wyjście
Powyższy kod działa pomyślnie i pokazuje wartość „ptr” na wyjściu.
grupowanie
- Teraz piszemy kod, w którym zmieniamy wartość zmiennej, na którą wskazuje wskaźnik.
#include int main() { int a=100; int b=200; const int* ptr; ptr=&b; *ptr=300; printf('Value of ptr is :%d',*ptr); return 0; }
W powyższym kodzie:
- Deklarujemy dwie zmienne, tj. „a” i „b” o wartościach odpowiednio 100 i 200.
- Deklarujemy wskaźnik do stałej.
- Przypisujemy adres zmiennej „b” do wskaźnika „ptr”.
- Następnie próbujemy zmodyfikować wartość zmiennej „b” poprzez wskaźnik „ptr”.
- Na koniec próbujemy wydrukować wartość zmiennej wskazywanej przez wskaźnik „ptr”.
Wyjście
Powyższy kod pokazuje błąd „przypisanie lokalizacji tylko do odczytu „*ptr”. Ten błąd oznacza, że nie możemy zmienić wartości zmiennej, na którą wskazuje wskaźnik.
Stała Wskaźnik na stałą
Stały wskaźnik do stałej to wskaźnik będący kombinacją dwóch powyższych wskaźników. Nie może zmienić adresu zmiennej, na którą wskazuje, ani nie może zmienić wartości umieszczonej pod tym adresem.
Składnia
const * const ;
Deklarację stałego wskaźnika do stałej podano poniżej:
const int* const ptr;
Rozumiemy na przykładzie.
tostringowa metoda Java
#include int main() { int a=10; int b=90; const int* const ptr=&a; *ptr=12; ptr=&b; printf('Value of ptr is :%d',*ptr); return 0; }
W powyższym kodzie:
- Deklarujemy dwie zmienne, tj. „a” i „b” o wartościach odpowiednio 10 i 90.
- Deklarujemy stały wskaźnik do stałej, a następnie przypisujemy adres „a”.
- Próbujemy zmienić wartość zmiennej „a” poprzez wskaźnik „ptr”.
- Następnie staramy się przypisać adres zmiennej „b” do wskaźnika „ptr”.
- Na koniec wypisujemy wartość zmiennej, która jest wskazywana przez wskaźnik „ptr”.
Wyjście
Powyższy kod pokazuje błąd „przypisanie lokalizacji tylko do odczytu „*ptr” i „przypisanie zmiennej tylko do odczytu „ptr”. Dochodzimy zatem do wniosku, że stały wskaźnik na stałą nie może zmieniać ani adresu, ani wartości, na którą wskazuje ten wskaźnik.