logo

konštantný ukazovateľ v C

Konštantné ukazovatele

Konštantný ukazovateľ v C nemôže zmeniť adresu premennej, na ktorú ukazuje, t.j. adresa zostane konštantná. Preto môžeme povedať, že ak konštantný ukazovateľ ukazuje na nejakú premennú, nemôže ukazovať na žiadnu inú premennú.

Syntax konštantného ukazovateľa

 *const ; 

Deklarácia konštantného ukazovateľa je uvedená nižšie:

 int *const ptr; 

Poďme pochopiť konštantný ukazovateľ prostredníctvom príkladu.

 #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; } 

Vo vyššie uvedenom kóde:

význam xdxd
  • Deklarujeme dve premenné, t.j. a a b s hodnotami 1 a 2.
  • Deklarujeme konštantný ukazovateľ.
  • Najprv priradíme adresu premennej 'a' k ukazovateľu 'ptr'.
  • Potom priradíme adresu premennej „b“ k ukazovateľu „ptr“.
  • Nakoniec sa pokúsime vytlačiť hodnotu premennej označenej 'ptr'.

Výkon

konštantný ukazovateľ v C

Vo vyššie uvedenom výstupe môžeme pozorovať, že vyššie uvedený kód vytvára chybu 'priradenie premennej len na čítanie 'ptr''. Znamená to, že hodnotu premennej „ptr“, ktorú obsahuje „ptr“, nemožno zmeniť. Vo vyššie uvedenom kóde meníme hodnotu 'ptr' z &a na &b, čo nie je možné s konštantnými ukazovateľmi. Preto môžeme povedať, že konštantný ukazovateľ, ktorý ukazuje na nejakú premennú, nemôže ukazovať na inú premennú.

Ukazovateľ na konštantu

Ukazovateľ na konštantu je ukazovateľ, cez ktorý nemožno zmeniť hodnotu premennej, na ktorú ukazovateľ ukazuje. Adresu týchto ukazovateľov je možné zmeniť, ale nemožno zmeniť hodnotu premennej, na ktorú ukazovateľ ukazuje.

plná forma

Syntax ukazovateľa na konštantu

 const * 

Deklarácia ukazovateľa na konštantu je uvedená nižšie:

 const int* ptr; 

Poďme to pochopiť na príklade.

    Najprv napíšeme kód, kde meníme hodnotu ukazovateľa
 #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; } 

Vo vyššie uvedenom kóde:

  • Deklarujeme dve premenné, t.j. a a b s hodnotami 100 a 200.
  • Vyhlásime ukazovateľ na konštantu.
  • Najprv priradíme adresu premennej 'a' k ukazovateľu 'ptr'.
  • Potom priradíme adresu premennej „b“ k ukazovateľu „ptr“.
  • Nakoniec sa pokúsime vytlačiť hodnotu 'ptr'.

Výkon

konštantný ukazovateľ v C

Vyššie uvedený kód beží úspešne a vo výstupe zobrazuje hodnotu 'ptr'.

javascript onclick
  • Teraz napíšeme kód, v ktorom meníme hodnotu premennej, na ktorú ukazuje ukazovateľ.
 #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; } 

Vo vyššie uvedenom kóde:

  • Deklarujeme dve premenné, t.j. 'a' a 'b' s hodnotami 100 a 200.
  • Deklarujeme ukazovateľ na konštantu.
  • Adresu premennej 'b' priradíme pointeru 'ptr'.
  • Potom sa pokúsime upraviť hodnotu premennej 'b' cez ukazovateľ 'ptr'.
  • Nakoniec sa pokúsime vytlačiť hodnotu premennej, na ktorú ukazuje ukazovateľ 'ptr'.

Výkon

konštantný ukazovateľ v C

Vyššie uvedený kód zobrazuje chybu 'priradenie umiestnenia len na čítanie '*ptr''. Táto chyba znamená, že nemôžeme zmeniť hodnotu premennej, na ktorú ukazuje ukazovateľ.

Konštantný ukazovateľ na konštantu

Konštantný ukazovateľ na konštantu je ukazovateľ, ktorý je kombináciou vyššie uvedených dvoch ukazovateľov. Nemôže zmeniť adresu premennej, na ktorú ukazuje, ani nemôže zmeniť hodnotu umiestnenú na tejto adrese.

Syntax

 const * const ; 

Deklarácia pre konštantný ukazovateľ na konštantu je uvedená nižšie:

 const int* const ptr; 

Poďme to pochopiť na príklade.

pvr plná forma
 #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; } 

Vo vyššie uvedenom kóde:

  • Deklarujeme dve premenné, t.j. 'a' a 'b' s hodnotami 10 a 90.
  • Deklarujeme konštantný ukazovateľ na konštantu a potom priradíme adresu 'a'.
  • Snažíme sa zmeniť hodnotu premennej 'a' cez ukazovateľ 'ptr'.
  • Potom sa pokúsime priradiť adresu premennej 'b' k ukazovateľu 'ptr'.
  • Nakoniec vypíšeme hodnotu premennej, na ktorú ukazuje ukazovateľ 'ptr'.

Výkon

konštantný ukazovateľ v C

Vyššie uvedený kód zobrazuje chybu „priradenie umiestnenia iba na čítanie „*ptr“ a „priradenie premennej iba na čítanie „ptr“. Preto sme dospeli k záveru, že ukazovateľ konštanty na konštantu nemôže zmeniť ani adresu, ani hodnotu, na ktorú tento ukazovateľ ukazuje.