logo

const Pokazivač u C

Konstantni pokazivači

Konstantni pokazivač u C-u ne može promijeniti adresu varijable na koju pokazuje, tj. adresa će ostati konstantna. Stoga možemo reći da ako konstantni pokazivač pokazuje na neku varijablu, onda ne može pokazivati ​​ni na jednu drugu varijablu.

Sintaksa konstantnog pokazivača

 *const ; 

Deklaracija konstantnog pokazivača je dana ispod:

 int *const ptr; 

Razmotrimo konstantni pokazivač kroz primjer.

java if izjava
 #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; } 

U gornjem kodu:

  • Dvije varijable, tj. a i b, deklariramo s vrijednostima 1 i 2.
  • Deklariramo konstantni pokazivač.
  • Prvo, dodjeljujemo adresu varijable 'a' pokazivaču 'ptr'.
  • Zatim dodjeljujemo adresu varijable 'b' pokazivaču 'ptr'.
  • Na kraju, pokušavamo ispisati vrijednost varijable na koju ukazuje 'ptr'.

Izlaz

const Pokazivač u C

U gornjem izlazu možemo primijetiti da gornji kod proizvodi pogrešku 'dodjeljivanje varijable samo za čitanje 'ptr''. To znači da se vrijednost varijable 'ptr' koju 'ptr' drži ne može promijeniti. U gornjem kodu mijenjamo vrijednost 'ptr' iz &a u &b, što nije moguće s konstantnim pokazivačima. Stoga možemo reći da konstantni pokazivač, koji pokazuje na neku varijablu, ne može pokazivati ​​na drugu varijablu.

Pokazivač na Konstantu

Pokazivač na konstantu je pokazivač preko kojeg se ne može promijeniti vrijednost varijable na koju pokazuje pokazivač. Adresa ovih pokazivača se može promijeniti, ali vrijednost varijable na koju pokazuje pokazivač se ne može promijeniti.

Sintaksa pokazivača na konstantu

 const * 

Deklaracija pokazivača na konstantu data je u nastavku:

 const int* ptr; 

Shvatimo kroz primjer.

    Prvo pišemo kod u kojem mijenjamo vrijednost pokazivač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; } 

U gornjem kodu:

  • Dvije varijable, tj. a i b, deklariramo s vrijednostima 100 i 200.
  • Proglašavamo pokazivač na konstantu.
  • Prvo, dodjeljujemo adresu varijable 'a' pokazivaču 'ptr'.
  • Zatim dodjeljujemo adresu varijable 'b' pokazivaču 'ptr'.
  • Na kraju, pokušavamo ispisati vrijednost 'ptr'.

Izlaz

const Pokazivač u C

Gornji kod se uspješno izvodi i prikazuje vrijednost 'ptr' u izlazu.

stvaranje niza nizova u Javi
  • Sada pišemo kod u kojem mijenjamo vrijednost varijable na koju pokazuje pokazivač.
 #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; } 

U gornjem kodu:

  • Deklariramo dvije varijable, tj. 'a' i 'b' s vrijednostima 100 odnosno 200.
  • Proglašavamo pokazivač na konstantu.
  • Adresu varijable 'b' dodjeljujemo pokazivaču 'ptr'.
  • Zatim pokušavamo modificirati vrijednost varijable 'b' kroz pokazivač 'ptr'.
  • Na kraju, pokušavamo ispisati vrijednost varijable na koju pokazuje pokazivač 'ptr'.

Izlaz

const Pokazivač u C

Gornji kôd prikazuje pogrešku 'dodjela lokacije samo za čitanje '*ptr'. Ova greška znači da ne možemo promijeniti vrijednost varijable na koju pokazuje pokazivač.

Pokazivač konstante na konstantu

Konstantni pokazivač na konstantu je pokazivač, koji je kombinacija gornja dva pokazivača. Ne može promijeniti adresu varijable na koju pokazuje niti može promijeniti vrijednost postavljenu na tu adresu.

Sintaksa

 const * const ; 

Deklaracija za konstantni pokazivač na konstantu je dana ispod:

 const int* const ptr; 

Shvatimo kroz primjer.

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

U gornjem kodu:

  • Deklariramo dvije varijable, tj. 'a' i 'b' s vrijednostima 10 odnosno 90.
  • Deklariramo konstantni pokazivač na konstantu i zatim dodjeljujemo adresu 'a'.
  • Pokušavamo promijeniti vrijednost varijable 'a' kroz pokazivač 'ptr'.
  • Zatim pokušavamo dodijeliti adresu varijable 'b' pokazivaču 'ptr'.
  • Na kraju ispisujemo vrijednost varijable na koju pokazuje pokazivač 'ptr'.

Izlaz

const Pokazivač u C

Gornji kôd prikazuje pogrešku 'dodjela lokacije samo za čitanje '*ptr'' i 'dodjela varijable samo za čitanje 'ptr'. Stoga zaključujemo da pokazivač konstante na konstantu ne može promijeniti ni adresu ni vrijednost na koju pokazuje ovaj pokazivač.