Hallottál már róla, hogy a programozók 0.-tól sorszámoznak?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
> Hallottál már róla, hogy a programozók 0.-tól sorszámoznak?
Természetesen a programozók is 1-gyel kezdik a sorszámozást, pl. elsőként (és nem nulladikként) az első (és nem a nulladik) sört isszák meg.
A programnyelvek zömében valóban 0 az első index – mondjuk egy tömb/lista esetén –, és nyilván egy programozó programozás közben így is gondolkodik. De egyrészt ez nem minden programnyelvben van így, másrészt a programozó is csak a programozás tevékenységén belül gondolkodik így, a hétköznapi életben ugyanúgy 1-gyel kezdi a sorszámozást.
(Ha még szigorúbban nézzük, akkor a programozó tulajdonképpen nem sorszámot ad meg, hanem a tömb/lista első eleméhez képesti offsetet adja meg.)
Vannak programozók akik 0.-tól sorszámoznak, nem csak programozás közben, hanem akár mindig: 0. oldal, 0. alkalom, stb. Nyilván nem mind, én 0.-tól szoktam sorszámozni: 0. hossz úszáskor, 0. helyezett egy versenyen, 0. doboz, stb.
Igen, a legtöbb programnyelven a tömbök, vagyis sorozatok sorszámozása 0.-tól kezdődik, például, Assembly, C, C++, C#, Rust, stb. Vannak programnyelvek melyekben szabadon megválasztható, akár 2.-tól is kezdhetem, ilyen a Pascal, ebben az index nem csak egész lehet hanem logikai, karakter is. Az ritka hogy fixen 1-gyel kezdődik, talán a Fortran olyan. A memóriacímek viszont 0.-tól kezdődnek, DOS-on van is értelme a 0 címnek: van ott adat, át is lehet írni, modernebbekben általában már nem.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
> Vannak programozók akik 0.-tól sorszámoznak, nem csak programozás közben, hanem akár mindig: 0. oldal, 0. alkalom, stb. Nyilván nem mind, én 0.-tól szoktam sorszámozni: 0. hossz úszáskor, 0. helyezett egy versenyen, 0. doboz, stb.
Vannak mentálisan sérültek, meg vannak, akik valamiféle különcködésként, divatként így tesznek, de a programozók 99%-a a hétköznapi életben – ahogy az általános és megszokott – sorszámként azt nevezi meg, amilyen mennyiségig a sorba vétellel eljutott. A 2. kecske azért a második, mert a megszámlálásával 2 lett a megszámolt kecskék száma.
Ha valaki megkérdezi, hogy ki volt az első barátnőd, akkor sejtésem szerint te sem azon kezdesz gondolkodni, hogy „oké, a nulladikat tudom, de ki is volt az első?”. Első alatt sejtésem szerint te is a elsőt érted.
És azért, mert ezt tanultuk csecsemőkorunk óta, meg ez a konszenzus is a társadalomban, mire az ember programozni kezd tanulni, addigra erősen rögzül ez a koncepció. Maximum apró kivételek vannak az életben, mikor más a helyet és ott is inkább látens módon jelenik meg a nem 1-gyel induló sorszám koncepciója (pl. az életkor ilyen, 1 évessé a gyerek akkor válik, ha egy egész év letelik, addig 0 éves. Bár ezt így nem mondjuk, helyette más egységgel fejezzük ki az életkort, pl. 2 hónapos, 3 hetes stb… Meg ha szigorúan nézzük, akkor ez sem sorszám, hanem az teljes egészében leélt évek darabszáma).
> Vannak programnyelvek melyekben szabadon megválasztható, akár 2.-tól is kezdhetem, ilyen a Pascal
A Pascal érdekes cucc. Ott is van alapértelmezett indexelés és az 0-val kezdődik. (Pl. dinamikus tömb esetén.) Viszont a stringek kezelhetők tömbként, ahol az első karakter az 1-es indexet kapja. (a 0. bájt ugye a string hosszát tárolja).
> Az ritka hogy fixen 1-gyel kezdődik, talán a Fortran olyan.
Továbbá: COBOL, Lua, MATLAB, Smalltalk, AWK
Vagy ami kicsit élőbb és elterjedtebb, az XPath is 1-től indexel:
(//element[@attr="val"])[1]
, illetve a CSS-ben is ez jelenik meg:
li:nth-child(1) { … }
Vagy pl. a legtöbb nyelvben, így a scriptnyelvekben is a parancssori attribútumok 1-től számozódnak, amibe jól belepasszol az, hogy a 0-ás indexű attribútum maga a program/script neve, ami nem valódik attribútum.
De igen, mivel a mai nyelvek zömében olyan nyelvekből kölcsönöznek logikát, szintaktikát, amiben 0-ás indexelés van, így a ma használt nyelvek döntő többsége ilyen, pár régi, ma már nem túl jelentős nyelv van csak, ahol 1-es indexelés van.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
A kérdés, hogy mikor megkérdezik tőled, hogy mondjuk melyik az angol ábécé 5. betűje, akkor mi játszódik le a fejedben:
A) Az angol ábécé ötödik betűje az E betű.
B). „Ötödiket mondott, de mivel nem programozó, így igen nagy valószínűséggel a negyedikre gondolt, az angol ábécé negyedik betűje meg az E betű, hiszen az A a nulladik, a B az első, a C a második, a D a harmadik és az E a negyedik”.
Magyarán neked minden alkalommal – teljesen hétköznapi, programozáshoz egy kicsit sem kapcsolódó élethelyzetekben – le kell-e tudatosan „fordítanod” azt, hogy mások mit értenek ötödik alatt, és átfordítanod tudatosan, hogy ez számodra a negyediket jelenti?
Mert ha igen, az már-már súrolja a mentális zavar kategóriáját.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!