logo

const Kazalec v C

Stalni kazalci

Konstantni kazalec v C ne more spremeniti naslova spremenljivke, na katero kaže, to pomeni, da bo naslov ostal konstanten. Zato lahko rečemo, da če stalni kazalec kaže na neko spremenljivko, potem ne more kazati na nobeno drugo spremenljivko.

Sintaksa konstantnega kazalca

 *const ; 

Deklaracija konstantnega kazalca je podana spodaj:

 int *const ptr; 

Razumejmo stalni kazalec na primeru.

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

V zgornji kodi:

  • Dve spremenljivki, to je a in b, deklariramo z vrednostma 1 oziroma 2.
  • Razglasimo stalni kazalec.
  • Najprej dodelimo naslov spremenljivke 'a' kazalcu 'ptr'.
  • Nato kazalcu 'ptr' dodelimo naslov spremenljivke 'b'.
  • Nazadnje poskušamo natisniti vrednost spremenljivke, na katero kaže 'ptr'.

Izhod

const Kazalec v C

V zgornjem izhodu lahko opazimo, da zgornja koda ustvari napako 'dodelitev spremenljivke samo za branje 'ptr'. To pomeni, da vrednosti spremenljivke 'ptr', ki jo hrani 'ptr', ni mogoče spremeniti. V zgornji kodi spreminjamo vrednost 'ptr' iz &a v &b, kar ni mogoče s konstantnimi kazalci. Zato lahko rečemo, da konstantni kazalec, ki kaže na neko spremenljivko, ne more kazati na drugo spremenljivko.

Kazalec na konstanto

Kazalec na konstanto je kazalec, skozi katerega ni mogoče spremeniti vrednosti spremenljivke, na katero kaže kazalec. Naslov teh kazalcev je mogoče spremeniti, vendar vrednosti spremenljivke, na katero kaže kazalec, ni mogoče spremeniti.

namestite maven

Sintaksa kazalca na konstanto

 const * 

Deklaracija kazalca na konstanto je podana spodaj:

 const int* ptr; 

Razumejmo skozi primer.

    Najprej napišemo kodo, kjer spreminjamo vrednost kazalca
 #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; } 

V zgornji kodi:

  • Deklariramo dve spremenljivki, to je a in b z vrednostma 100 oziroma 200.
  • Razglasimo kazalec na konstanto.
  • Najprej dodelimo naslov spremenljivke 'a' kazalcu 'ptr'.
  • Nato kazalcu 'ptr' dodelimo naslov spremenljivke 'b'.
  • Nazadnje poskušamo natisniti vrednost 'ptr'.

Izhod

const Kazalec v C

Zgornja koda se uspešno izvaja in prikazuje vrednost 'ptr' v izhodu.

  • Zdaj napišemo kodo, v kateri spreminjamo vrednost spremenljivke, na katero kaže kazalec.
 #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; } 

V zgornji kodi:

java, kako pretvoriti niz v int
  • Deklariramo dve spremenljivki, tj. 'a' in 'b' z vrednostma 100 oziroma 200.
  • Razglasimo kazalec na konstanto.
  • Naslov spremenljivke 'b' dodelimo kazalcu 'ptr'.
  • Nato poskušamo spremeniti vrednost spremenljivke 'b' s kazalcem 'ptr'.
  • Nazadnje poskušamo natisniti vrednost spremenljivke, na katero kaže kazalec 'ptr'.

Izhod

const Kazalec v C

Zgornja koda prikazuje napako 'dodelitev lokacije samo za branje '*ptr'. Ta napaka pomeni, da ne moremo spremeniti vrednosti spremenljivke, na katero kaže kazalec.

Kazalec konstante na konstanto

Kazalec konstante na konstanto je kazalec, ki je kombinacija zgornjih dveh kazalcev. Ne more niti spremeniti naslova spremenljivke, na katero kaže, niti ne more spremeniti vrednosti, postavljene na ta naslov.

Sintaksa

 const * const ; 

Deklaracija za kazalec konstante na konstanto je podana spodaj:

 const int* const ptr; 

Razumejmo skozi primer.

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

V zgornji kodi:

kako pretvoriti int v niz
  • Deklariramo dve spremenljivki, to sta 'a' in 'b' z vrednostma 10 oziroma 90.
  • Konstantni kazalec deklariramo na konstanto in nato dodelimo naslov 'a'.
  • Vrednost spremenljivke 'a' poskušamo spremeniti preko kazalca 'ptr'.
  • Nato poskusimo dodeliti naslov spremenljivke 'b' kazalcu 'ptr'.
  • Na koncu natisnemo vrednost spremenljivke, na katero kaže kazalec 'ptr'.

Izhod

const Kazalec v C

Zgornja koda prikazuje napako 'dodelitev lokacije samo za branje '*ptr'' in 'dodelitev spremenljivke samo za branje 'ptr'. Zato sklepamo, da kazalec konstante na konstanto ne more spremeniti niti naslova niti vrednosti, na katero ta kazalec kaže.