Mutató vs Array
A mutató olyan adattípus, amely hivatkozást tartalmaz a memória helyére (azaz egy mutató változó egy olyan memóriahely címét tárolja, amelyben bizonyos adatok tárolódnak). A tömbök a leggyakrabban használt adatszerkezetek az elemek gyűjteményének tárolására. A legtöbb programozási nyelv módszereket kínál a tömbök egyszerű deklarálására és a tömbökben található elemek elérésére.
Mi az a mutató?
A mutató olyan adattípus, amely egy olyan memóriahely címét tárolja, amelyben bizonyos adatok vannak tárolva. Más szavakkal, a mutató hivatkozást tartalmaz a memória helyére. A mutató által hivatkozott memóriahelyen tárolt adatokhoz való hozzáférést alárendelésnek nevezzük. Ismétlődő műveletek, például fák / húrok áthaladása, asztalkeresés stb. Végrehajtása során a mutatók használata javítja a teljesítményt. A mutatók levonása és másolása ugyanis olcsóbb, mint a mutatók által mutatott adatok tényleges másolása és elérése. A null mutató olyan mutató, amely nem mutat semmire. A Java-ban egy null mutató elérése NullPointerException nevű kivételt generálna.
Mi az a tömb?
Az 1. ábra egy olyan kódrészlet, amelyet általában egy tömb deklarálásához és értékeinek hozzárendeléséhez használnak. A 2. ábra azt ábrázolja, hogyan néz ki egy tömb a memóriában.
értékek [0] = 100; értékek [1] = 101; értékek [2] = 102; értékek [3] = 103; értékek [4] = 104; |
1. ábra: Kód az értékek deklarálásához és hozzárendeléséhez egy tömbhöz
100 | 101 | 102 | 103. | 104 |
Index: 0 | 1 | 2 | 3 | 4 |
2. ábra: A memóriában tárolt tömb
A kód felett egy tömböt határozhat meg, amely 5 egész számot képes tárolni, és ezekhez 0 és 4 közötti indexek férnek hozzá. A tömb egyik fontos tulajdonsága, hogy a teljes tömböt egyetlen memóriablokkként osztják ki, és minden elem saját teret kap a tömbben. Miután meghatároztuk a tömböt, annak mérete rögzül. Tehát, ha nem biztos a tömb méretében fordításkor, akkor elég nagy tömböt kell meghatároznia ahhoz, hogy a biztonságos oldalon lehessen. De legtöbbször valójában kevesebb elemet fogunk használni, mint amennyit kiosztottunk. Tehát a memória jelentős része elpazarolható. Másrészt, ha az „elég nagy tömb” valójában nem elég nagy, akkor a program összeomlik.
Mi a különbség a mutató és a tömb 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 elemek gyűjteményének tárolásához. A C programozási nyelvben a tömbindexelés mutatószámtani alkalmazásával történik (azaz az x tömb i-edik eleme egyenértékű lenne * (x + i)). Ezért a C-ben tömbnek tekinthetők azok a mutatók, amelyek egymást követő memóriahelyek halmazára mutatnak. Továbbá különbség van abban, hogy az operátor mérete hogyan működik a mutatókon és tömbökön. Ha egy tömbhöz alkalmazzuk, a sizeof operátor a tömb teljes méretét adja vissza, míg egy mutatóra alkalmazva csak a mutató méretét adja vissza.