Különbség a mutató és a tömb között

Pointer vs Array

A mutató olyan adattípus, amely hivatkozást tartalmaz egy memóriahelyre (azaz a mutatóváltozó egy olyan memóriahely címét tárolja, amelyben bizonyos adatokat tárolnak). Az elemek gyűjteményének tárolására a tömbök a leggyakrabban használt adatszerkezetek. A legtöbb programozási nyelv módszereket biztosít a tömbök és a tömbökhez való hozzáférési elemek könnyű deklarálására.

Mi az a mutató??

A mutató olyan adattípus, amely egy olyan memóriahely címét tárolja, amelyben bizonyos adatokat tárolnak. Más szavakkal, egy mutató hivatkozást tartalmaz egy memóriahelyre. A memóriahelyen tárolt adatok elérését, amelyekre a mutató hivatkozik, dereferenciának nevezzük. Ismétlődő műveletek végrehajtásakor, mint például a fák / karakterláncok átvitele, asztali áttekintések stb., A mutatók használata javítaná a teljesítményt. Ennek oka az, hogy a mutatók levonása és másolása olcsóbb, mint a mutatók által jelzett adatok másolása és elérése. A nullmutató egy olyan mutató, amely nem mutat semmire. A Java-ban egy null-mutató elérése kivételt generál, amelyet NullPointerException-nek hívnak.

Mi az a tömb?

Az 1. ábrán látható kódrészlet, amelyet általában egy tömb értékének deklarálására és hozzárendelésére használnak. A 2. ábra azt mutatja be, hogy egy tömb hogyan nézne ki a memóriában.

int értékek [5];

értékeket [0] = 100;

értékeket [1] = 101;

értékeket [2] = 102;

értékeket [3] = 103;

értékek [4] = 104;

1. ábra: Az értékek deklarálása és hozzárendelése a tömbhez


100 101 102 103 104
Index: 0 1 2 3 4

2. ábra: A memóriában tárolt tömb

A fenti kód egy olyan tömböt határoz meg, amely 5 egész számot tárolhat, és amelyekhez 0–4 indexekkel lehet hozzájutni. A tömb egyik fontos tulajdonsága, hogy a teljes tömböt egyetlen memóriablokknak osztják el, és minden elem saját helyet kap a tömbben . Miután egy tömb meghatározásra került, rögzítik annak méretét. Tehát ha nem biztos a tömb méretében a fordításkor, akkor elég nagy tömböt kell definiálnia ahhoz, hogy biztonságban legyen. De a legtöbb alkalommal valójában kevesebb elemet fogunk használni, mint amennyit kiosztunk. Tehát jelentős mennyiségű memória pazarlik el. Másrészt, ha a „elég nagy tömb” valójában nem elég nagy, akkor a program összeomlik.

Mi a különbség a mutatók és a tömbök között??

A mutató olyan adattípus, amely egy olyan memóriahely címét tárolja, amelyben bizonyos adatokat tárolnak, míg a tömbök a leggyakrabban használt adatszerkezetek az elemgyűjtemény tárolására. A C programozási nyelvben a tömb indexelését mutató aritmetikai módszerrel végezzük (vagyis az x tömb i-edik eleme ekvivalens * (x + i) -val). Ezért a C pontban az egymást követő memóriahelyek halmazára mutató mutatók halmaza tömbnek tekinthető. Ezenkívül különbség van abban, hogy az operátor mérete miként működik a mutatókon és tömbökön. Ha egy tömbre alkalmazunk, akkor a operátor mérete a tömb teljes méretét adja vissza, míg egy mutatóra történő alkalmazáskor csak a mutató méretét adja vissza..