IWimv2m.jpg
  • Pio
    #12385
    Smartass üzemmód ON

    A 0-ról indexelés oka az, hogy bár tényleg kevéssé logikus, ámde kevesebb művelettel lehet elérni 1-1 tömbben (vagy tetszőleges dimenziós mátrixban) tárolt adattagot.

    El van tárolva az első adattag helye a memóriában és az egyes adattagok hosszát is tudjuk (bájtban).
    Ekkor ha le akarjuk kérdezni az i. indexű adattagot, akkor azt az alábbi formulával tudjuk elérni 1-től indexelésnél:
    1. adattag címe + adattaghossz * (i-1)
    0-tól indexelésnél viszont:
    0. adattag címe + adattaghossz * i

    Például el akarom érni a 3. indexű adattagot.
    Akkor 1-től indexelve az első indextől 2-t kell továbblépni, hogy 3-hoz érjek, míg 0-tól indexelve a 0.-tól 3-at kell lépni, hogy 3-hoz érjek.

    Lényegileg tehát 1-től indexeléssel plusz 1 kivonás művelettel jár egy adattag elérés 1 dimenzióban.
    Ezt most nem kezdem el levezetni, de n dimenzióban n darab levonás jön be a képbe. Ennyit spórolunk tehát azzal, ha 0-tól indexelünk.