logo

const Pointer i C

Konstante pekere

En konstantpeker i C kan ikke endre adressen til variabelen den peker til, dvs. adressen vil forbli konstant. Derfor kan vi si at hvis en konstant peker peker på en variabel, så kan den ikke peke på noen annen variabel.

Syntaks for konstant peker

 *const ; 

Deklarasjon av en konstant peker er gitt nedenfor:

 int *const ptr; 

La oss forstå den konstante pekeren gjennom et eksempel.

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

I koden ovenfor:

  • Vi erklærer to variabler, dvs. a og b med verdiene 1 og 2, henholdsvis.
  • Vi erklærer en konstant peker.
  • Først tildeler vi adressen til variabel 'a' til pekeren 'ptr'.
  • Deretter tildeler vi adressen til variabel 'b' til pekeren 'ptr'.
  • Til slutt prøver vi å skrive ut verdien av variabelen pekt av 'ptr'.

Produksjon

const Pointer i C

I utgangen ovenfor kan vi observere at koden ovenfor produserer feilen 'tilordning av skrivebeskyttet variabel 'ptr''. Det betyr at verdien av variabelen 'ptr' som 'ptr' holder, ikke kan endres. I koden ovenfor endrer vi verdien av 'ptr' fra &a til &b, noe som ikke er mulig med konstante pekere. Derfor kan vi si at konstantpekeren, som peker på en variabel, ikke kan peke på en annen variabel.

Peker til konstant

En peker til konstant er en peker der verdien av variabelen som pekeren peker ikke kan endres. Adressen til disse pekerne kan endres, men verdien av variabelen som pekeren peker kan ikke endres.

Syntaks for peker til konstant

 const * 

Erklæring av en peker til konstant er gitt nedenfor:

 const int* ptr; 

La oss forstå gjennom et eksempel.

    Først skriver vi koden der vi endrer verdien til en peker
 #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; } 

I koden ovenfor:

  • Vi erklærer to variabler, dvs. a og b med verdiene henholdsvis 100 og 200.
  • Vi erklærer en peker til konstant.
  • Først tildeler vi adressen til variabel 'a' til pekeren 'ptr'.
  • Deretter tildeler vi adressen til variabel 'b' til pekeren 'ptr'.
  • Til slutt prøver vi å skrive ut verdien av 'ptr'.

Produksjon

const Pointer i C

Koden ovenfor kjører vellykket, og den viser verdien av 'ptr' i utdataene.

  • Nå skriver vi koden der vi endrer verdien til variabelen som pekeren peker til.
 #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; } 

I koden ovenfor:

  • Vi erklærer to variabler, dvs. 'a' og 'b' med verdiene henholdsvis 100 og 200.
  • Vi erklærer en peker til konstant.
  • Vi tildeler adressen til variabelen 'b' til pekeren 'ptr'.
  • Deretter prøver vi å endre verdien av variabelen 'b' gjennom pekeren 'ptr'.
  • Til slutt prøver vi å skrive ut verdien til variabelen som pekes med pekeren 'ptr'.

Produksjon

const Pointer i C

Koden ovenfor viser feilen 'tilordning av skrivebeskyttet plassering '*ptr''. Denne feilen betyr at vi ikke kan endre verdien til variabelen som pekeren peker til.

Konstant peker til en konstant

En konstant peker til en konstant er en peker, som er en kombinasjon av de to pekerne ovenfor. Den kan verken endre adressen til variabelen den peker til, eller den kan endre verdien plassert på denne adressen.

Syntaks

 const * const ; 

Erklæring for en konstant peker til en konstant er gitt nedenfor:

 const int* const ptr; 

La oss forstå gjennom et eksempel.

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

I koden ovenfor:

  • Vi erklærer to variabler, dvs. 'a' og 'b' med verdiene henholdsvis 10 og 90.
  • Vi erklærer en konstant peker til en konstant og tildeler deretter adressen til 'a'.
  • Vi prøver å endre verdien av variabelen 'a' gjennom pekeren 'ptr'.
  • Deretter prøver vi å tilordne adressen til variabel 'b' til pekeren 'ptr'.
  • Til slutt skriver vi ut verdien til variabelen, som pekes med pekeren 'ptr'.

Produksjon

const Pointer i C

Koden ovenfor viser feilen 'tilordning av skrivebeskyttet plassering '*ptr'' og 'tilordning av skrivebeskyttet variabel 'ptr''. Derfor konkluderer vi med at konstantpekeren til en konstant verken kan endre adresse eller verdi, som peker med denne pekeren.