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ő:

  1. Az ampersand (&) módszer használatával
  2. 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 -

  1. Mi a programozási nyelv?
  2. C vs C ++
  3. Minta a C programozásban
  4. Legjobb C fordító
  5. Útmutató a C ++ mutatókhoz
  6. C # mutatók példákkal

Kategória: