Bevezetés a C mutatókba
C vagy más programozási nyelven van egy változó fogalma. Ezeket a változókat az értékek tárolására használják. Ilyen változók programozás közben használhatók. Van azonban néhány olyan feladat, amely nem igényel változókat, hanem megköveteli azoknak a címeket. A változók címe azt a memóriahelyet jelenti, ahol ezek a változók léteznek. Ebben a témakörben megismerjük a C mutatókat. A mutatót úgy definiálhatjuk, mint egy olyan változótípust, amely bármely más olyan változó címét tárolja, amely valamilyen értéket tarthat.
A mutatók használata a programozási nyelvekben és a C-ben
Most tárgyaljuk meg azt, ahol C-re valójában szükségünk van-e egy mutatóra. Számos olyan feladat létezik, mint például a dinamikus memóriaelosztás, amelynél mutatókra van szükség a programozáshoz a C-ben. A mutatók használatával az ilyen feladat könnyen elvégezhető
A változó címek elérésének különböző módjai C - ben
Próbáljuk megtudni, hogy milyen különféle módszerekkel nyomtathatjuk ki a változó címét C-ben.
Kétféle módon tudjuk kinyomtatni egy változó címét. Ez a két módszer a következő:
- Az ampersand (&) módszer használatával
- A mutató használatával
Nézzünk meg példákat az egyes módszerekre
1. Az ampersand (&) módszer használatával
Ebben a módszerben az ampersand fogalmát fogjuk használni egy változó címének kinyomtatásához
Nézzük meg ezt egy példával
#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)
Most másolja át a fenti kódrészletet és futtassa azt
A következő kimenetet fogja mutatni:
The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e
Előfordulhat azonban, hogy a példa futtatásakor láthatjuk a véletlenszerűen hozzárendelt különböző értékeket
A fent említett példát nem sokkal használják, de érdemes tudni. Most nézzük meg a másik koncepciót, amelyet ebben a témában tárgyalunk.
2. A Pointer használatával
Ez egy modern megközelítés a változó címének eléréséhez. A mutató használata előtt tudassa velünk a mutató deklarálásának általános szintaxisát
- A mutató deklarálásának általános szintaxisa - A szintaxis, amelyet egy változó deklarálására használunk:
data_type *variable
Ez egy általános módszer bármely mutató deklarálására C-ben, itt az data_type azt a változó típusát jelöli, amelynek címét tárolni kell. * azt jelzi, hogy a deklarált változó mutató. egy változót egyszerűen használnak az érték elérésére
Egy egyszerű példa erre:
double *var_text
Miután megvitattuk a mutató deklarálásának általános szintaxisának koncepcióját , ossza meg velünk, hogyan tudjuk használni a mutatót a programozásban
Ahhoz, hogy egy mutatót C-ben használjunk, alapvetően a következő három lépést kell követnie:
- A mutató változó meghatározása
- Annak a változónak a címe, amelynek címét meg akarjuk tartani a mutatóváltozóban
- Most, ha van egy mutató-változó a címmel, megismételhetjük a változó értékét a mutatóban tárolt címről. Ezt meg lehet tenni a * használatával a C hőmérsékleten. * A * egyszerűen az egyik unary operátor
Használjuk a fent említett lépéseket egy példával, majd ezt a példát lépésről lépésre magyarázjuk
Példa
#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)
Most másolja át a fenti kódrészletet és futtassa azt
A következő kimenetet fogja mutatni:
Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10
Most próbáljuk megérteni a fenti példát
Int varNumValue = 10; egyszerűen deklarálja a 10 értékű változót
A mellette lévő második sor: int * ipointervarNumValue; egyszerűen kijelenti, hogy a változó címét tárolja
A következő kódrészlet: ipointervarNumValue = & varNumValue; a változó címének tartására szolgál. Itt az ampersand fogalmát használjuk, amelyet a cikkben korábban tárgyaltunk
Most egyszerűen megkaphatjuk az értéket, és használhatunk egy mutatót a kódrészletünkben
Most nézzük meg a C különféle mutató típusait
A mutató típusai a C-ben
Különböző típusú mutatók vannak a C-ben. Az általában alkalmazott mutatók alapvető típusai:
- NULL Pointer
- Lógó mutató
- Általános mutatók
- Vad mutató
Magyarázza el mindegyiket
1. Nullmutató: A nullmutató egy olyan típusú mutató, amely semmit nem mutat. Általában a szegmens alapcímére mutat. Ha semmi nincs hozzárendelve a mutatóhoz, akkor null értéke van
Általában olyan fejléc fájlokban használják, mint például az stdio.h, alloc.h
2. Dangler mutató: Az ilyen típusú mutató az objektum törlésével, a mutató értékének módosítása nélkül hozható létre
3. Általános mutató: Az ilyen típusú mutatót érvénytelen típusú változóval deklaráljuk. Mivel érvénytelen adattípus, ezért általános mutatónak nevezik. Az ilyen típusú mutató semmilyen adatra nem mutat
4. Vad mutató: Az inicializálatlan mutatót vad mutatónak nevezik. Az ilyen típusú mutatót inicializálják futási idő alatt, amikor használni kell. Az ilyen típusú mutatót vad mutatónak nevezzük
Következtetés
A C mutatók a változó címére mutatnak. Ezeket a változókat a memória dinamikus elosztásához használják C-ben. Ezeket a változókat csillaggal deklarálják, hogy megmutatják, hogy a változó mutató. Ezeket használják a fejléc fájlban a programozáshoz.
Ajánlott cikkek
Ez egy útmutató a C mutatókhoz. Itt bemutatjuk a C mutatók különféle típusait és felhasználásait módszerekkel és példákkal. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -
- Mi a programozási nyelv?
- C vs C ++
- Minta a C programozásban
- Legjobb C fordító
- Útmutató a C ++ mutatókhoz
- C # mutatók példákkal