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
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.
#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
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
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
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č.