C – Mutatók

Hirdetések

A C-ben lévő mutatókat könnyű és szórakoztató megtanulni. Néhány C programozási feladatot könnyebben elvégezhet a mutató, és más feladatokat, például a dinamikus memória-allokációt, nem lehet végrehajtani mutatók használata nélkül. Tehát szükségessé válik a mutatók megtanulása a tökéletes C programozóvá váláshoz. Kezdjük el megtanulni őket egyszerű és egyszerű lépésekkel.

Mint tudják, minden változó memóriahely, és minden memóriahelynek meg van határozva a címe, amelyhez az ampersand () operátor, amely egy címet jelöl a memóriában. Tekintsük a következő példát, amely kinyomtatja a definiált változók címét –

A fenti kód összeállításakor és végrehajtásakor a következőket állítja elő: eredmény –

Address of var1 variable: bff5a400Address of var2 variable: bff5a3f6

Mik azok a mutatók?

A mutató egy olyan változó, amelynek értéke egy másik változó címe, azaz közvetlen cím A memória helyének hasonlóan. Mint minden változóhoz vagy konstanshoz, minden változó címének tárolása előtt deklarálnia kell egy mutatót. A mutató változó deklarációjának általános formája –

type *var-name;

Itt írja be a mutató alaptípusát; érvényes C adattípusnak kell lennie, a var-name pedig a mutatóváltozó neve. A mutató deklarálásához használt * csillag megegyezik a szorzáshoz használt csillaggal. Ebben a nyilatkozatban azonban a csillagot arra használjuk, hogy egy változót mutatóként jelöljünk ki. Vessen egy pillantást az érvényes mutató deklarációkra –

int *ip; /* pointer to an integer */double *dp; /* pointer to a double */float *fp; /* pointer to a float */char *ch /* pointer to a character */

Az összes mutató értékének tényleges adattípusa, legyen az egész, lebegő, karakteres vagy más , ugyanaz, egy hosszú hexadecimális szám, amely egy memória címet képvisel. Az egyetlen különbség a különböző adattípusok mutatói között az a változó vagy konstans adattípusa, amelyre a mutató mutat.

Hogyan használjuk a mutatókat?

Van néhány fontos művelet, amit a mutatók segítségével nagyon gyakran meg fogunk tenni. (a) Meghatározunk egy mutató változót, (b) egy változó címét rendeljük egy mutatóhoz, és (c) végül elérjük az értéket a mutató változóban elérhető címen. Ez unary operátor * használatával történik, amely visszaadja az operandus által megadott címen található változó értékét. A következő példa ezeket a műveleteket használja –

A fenti kód összeállításakor és végrehajtásakor a következő eredményt kapja –

Address of var variable: bffd8b3cAddress stored in ip variable: bffd8b3cValue of *ip variable: 20

NULL mutatók

Mindig jó gyakorlat NULL értéket rendelni egy mutató változóhoz, ha nincs pontos hozzárendelendő cím. Ez a változó deklarálásakor történik. A NULL hozzárendelt mutatót null pointernek hívják.

A NULL mutató egy állandó értékű, nulla értékű, amelyet több szabványos könyvtár definiál. Vegye figyelembe a következő programot –

#include <stdio.h>int main () { int *ptr = NULL; printf("The value of ptr is : %x\n", ptr ); return 0;}

A fenti kód összeállításakor és végrehajtásakor a következő eredményt kapja –

The value of ptr is 0

Az operációs rendszerek többségében a programok nem férhetnek hozzá a 0-os címhez tartozó memóriához, mert ezt a memóriát az operációs rendszer fenntartja. A 0 memóriacímnek azonban különleges jelentősége van; azt jelzi, hogy a mutató nem egy elérhető memóriahelyre mutat. De szokás szerint, ha egy mutató a null (nulla) értéket tartalmazza, akkor feltételezhetően semmire sem mutat.

A null mutató ellenőrzéséhez használhat egy “if” utasítást az alábbiak szerint –

if(ptr) /* succeeds if p is not null */if(!ptr) /* succeeds if p is null */

Mutatók részletesen

A mutatók sok, de egyszerű fogalommal bírnak, és nagyon fontosak a C programozás szempontjából. A következő fontos mutatókoncepcióknak világosaknak kell lenniük minden C programozó számára –

Sr.No. Koncepció & Leírás
1 Mutatószámtani

Négy számtani operátor használható a mutatókban: ++, -, +, –

2 Mutatók tömbje

Meghatározhat tömböket számos mutató megtartására.

3 Mutató mutatóra

C lehetővé teszi, hogy mutató legyen egy mutatón és így tovább.

4 Mutatók átadása a C függvényekben

Átadás egy hivatkozás vagy cím szerinti argumentum lehetővé teszi az átadott argumentum megváltoztatását a hívó függvényben a hívott függvény által.

5 Return mutató a függvényekből a C-ben

A C lehetővé teszi, hogy a függvény visszaadjon egy mutatót a helyi változóhoz, a statikus változóhoz és a dinamikusan lefoglalt memóriához is.

Hirdetések

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük