logo

const Wskaźnik w C

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

const Wskaźnik w C

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.

    Najpierw piszemy kod, w którym zmieniamy wartość wskaźnika
 #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

const Wskaźnik w C

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

const Wskaźnik w C

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

const Wskaźnik w C

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.