logo

const Mutató C-ben

Állandó mutatók

Egy konstans mutató C-ben nem tudja megváltoztatni annak a változónak a címét, amelyre mutat, azaz a cím állandó marad. Ezért azt mondhatjuk, hogy ha egy konstans mutató valamilyen változóra mutat, akkor nem mutathat más változóra.

Az állandó mutató szintaxisa

 *const ; 

A konstans mutató deklarációja az alábbiakban található:

 int *const ptr; 

Értsük meg az állandó mutatót egy példán keresztül.

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

A fenti kódban:

statikus függvény java-ban
  • Két változót deklarálunk, azaz a-t és b-t 1-es, illetve 2-es értékkel.
  • Állandó mutatót deklarálunk.
  • Először az 'a' változó címét rendeljük hozzá a 'ptr' mutatóhoz.
  • Ezután hozzárendeljük a 'b' változó címét a 'ptr' mutatóhoz.
  • Végül megpróbáljuk kiírni a 'ptr' által mutatott változó értékét.

Kimenet

const Mutató C-ben

A fenti kimenetben megfigyelhetjük, hogy a fenti kód a „ptr csak olvasható változó hozzárendelése” hibát produkálja. Ez azt jelenti, hogy a 'ptr' változó értéke, amelyet a 'ptr' tart, nem módosítható. A fenti kódban a 'ptr' értékét &a-ról &b-re változtatjuk, ami állandó mutatókkal nem lehetséges. Ezért azt mondhatjuk, hogy a konstans mutató, amely valamilyen változóra mutat, nem mutathat másik változóra.

Mutasson a Constantra

Az állandóra mutató mutató olyan mutató, amelyen keresztül a mutató által mutatott változó értéke nem változtatható meg. Ezeknek a mutatóknak a címe módosítható, de azon változó értéke, amelyre a mutató mutat, nem módosítható.

A mutató szintaxisa konstansra

 const * 

A konstansra mutató mutató deklarációja az alábbiakban látható:

 const int* ptr; 

Értsük meg egy példán keresztül.

    Először megírjuk a kódot, ahol megváltoztatjuk a mutató értékét
 #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; } 

A fenti kódban:

  • Két változót deklarálunk, azaz a-t és b-t 100 és 200 értékkel.
  • Állandó mutatót deklarálunk.
  • Először az 'a' változó címét rendeljük hozzá a 'ptr' mutatóhoz.
  • Ezután hozzárendeljük a 'b' változó címét a 'ptr' mutatóhoz.
  • Végül megpróbáljuk kinyomtatni a 'ptr' értékét.

Kimenet

const Mutató C-ben

A fenti kód sikeresen lefut, és a kimenetben a 'ptr' értékét mutatja.

  • Most megírjuk azt a kódot, amelyben megváltoztatjuk annak a változónak az értékét, amelyre a mutató mutat.
 #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; } 

A fenti kódban:

  • Két változót, azaz 'a'-t és 'b'-t deklarálunk 100 és 200 értékkel.
  • Állandó mutatót deklarálunk.
  • A 'b' változó címét a 'ptr' mutatóhoz rendeljük.
  • Ezután a 'ptr' mutatón keresztül megpróbáljuk módosítani a 'b' változó értékét.
  • Végül megpróbáljuk kiírni annak a változónak az értékét, amelyre a 'ptr' mutató mutat.

Kimenet

const Mutató C-ben

A fenti kód a „*ptr csak olvasható hely hozzárendelése” hibát mutatja. Ez a hiba azt jelenti, hogy nem tudjuk megváltoztatni annak a változónak az értékét, amelyre a mutató mutat.

Állandó mutató egy állandóra

Az állandó mutató egy mutató, amely a fenti két mutató kombinációja. Nem tudja megváltoztatni annak a változónak a címét, amelyre mutat, és nem tudja megváltoztatni az ezen a címen elhelyezett értéket sem.

Szintaxis

 const * const ; 

Az alábbiakban egy konstans mutató deklarációja látható:

 const int* const ptr; 

Értsük meg egy példán keresztül.

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

A fenti kódban:

  • Két változót, azaz 'a'-t és 'b'-t deklarálunk 10, illetve 90 értékkel.
  • Egy konstans mutatót deklarálunk egy konstanshoz, majd hozzárendeljük az 'a' címét.
  • Az 'a' változó értékét a 'ptr' mutatón keresztül próbáljuk megváltoztatni.
  • Ezután megpróbáljuk hozzárendelni a 'b' változó címét a 'ptr' mutatóhoz.
  • Végül kiírjuk a változó értékét, amelyet a 'ptr' mutató mutat.

Kimenet

const Mutató C-ben

A fenti kód a '*ptr csak olvasható hely hozzárendelése' és a 'ptr csak olvasható változó hozzárendelése' hibát mutatja. Ezért arra a következtetésre jutunk, hogy a konstans mutatója nem változtathatja meg sem a címet, sem az értéket, amelyre ez a mutató mutat.