C++ nyelvben a tömböknek van típusa, vagy egy bizonyos típusú tömb szintén egy típus?
A tömb egy adatszerkezet, a benne tárolt adatoknak van típusa.
Tömb "típus"-ról akkor beszélhetünk ha pl. egy vagy több dimenziós a tömb.
Ahogy a kettes írja.
Léteznek adattípusok és azokból kialakított tömbök. De a tömbök nem lesznek típusok, csak gyűjteményei, halmazai bizonyos adattípusoknak.
Ezek az adattípusok lehetnek elemiek /char/ vagy összetettek /record/ is.
Hát rosszul tanították.
Azt nem a nyelv határozza meg, hogy a típus micsoda.
A tipus egy olyan fogalom, amely a nyelvtől független.
A lecsó sem határozza meg, hogy a paprika és a paradicsom micsoda.
Épp így nem a nyelvtől lesz az elemi adattípusból az, ami. Egy byte, vagy integer mindig is byte vagy integer marad.
Bit, byte, nibble, char, integer, float, boolean, ...
Vannak fogalmak, melyekre előszeretettel hivatkoznak, mint pl a string vagy a tuple, de ezek a hivatkozások sántítanak.
A kérdés tárgyára a tömbre viszont végképp nem lehet úgy tekinteni mint adattípusra, hiszen az nem tipus, hanem bizonyos - azonos - tipusok /többesszám/ tárolója, tehát adatszerkezet.
Ahogy adatszerkezet a rekord is és a tuple is. A string viszont nem adatszerkezet, mert az adatszerkezet jellemzője, hogy nem bontható fel az elemeire, csak úgy, hogy az eredeti tulajdonsága elvész. Ha a stringet felbontod karakterekre, akkor az már nem string, hanem char tömb.
Kettévágni persze lehet, de ezt inkább hagyjuk ..
"Egy byte, vagy integer mindig is byte vagy integer marad."
Itt a hiba! A bit, byte egy matematikai fogalom az adattárolás strukturálására. Léteznek ilyen nevű típusok is, de ezt most hagyjuk, ezzel csak összekeverjük a fogalmakat. Az integer-t, és társait, nyelvi szinten kell definiálnod, ettől lesz típus. És egyébként nyelv-független szinten nincs különbség az elemi és összetett típusok közt. Neked kell definiálnod, mit kezd a nyelved az adott hosszú és megadott kezdőcímű memóriával.
Írj egy fordítót és meglátod.
Tartalmilag elég sekélyes volt ez a hozzászólás.
Ráadásul sok butaságot is tartalmaz.
A bit meg a byte sokkal több matematikai fogalomnál. Ezeket nem kell definiálni nyelvi szinten, mert már definiálva vannak és nem attól lesznek típusok, hogy bárki azokat nyelvi sazinten definiálja. A tuple-t lehet definiálni nyelvi szinten, csak az a gond, hogy a tuple nem elemi adattipus. Elve, ezt a hülyeséget te honnan vetted, hogy egy elemi adattipust definiálni kéne nyelvi szinten?
A boolean nem attól lesz boolean, hogy te definiálgatod. Ezt megtették már előtted, neked annyi a lehetőséged, hogy vagy használod, vagy nem.
Ami SAJÁT tipust képezel egy nyelven belül, más, meglévő adattípusokból, azokat kell definiálni, de én most nem ezekről, hanem az elemi adattipusokról beszélek.
Egy byte vagy integer architektúra-, tehát gépfüggő és nem a nyelv határozza azt meg. Persze megteheted, hogy a te programnyelvedben az integert 16 vagy 256 bit hosszra határozod meg /a jelenleg szokásos 32 vagy 64 bit helyett/, de ezzel csak a méretét állítod be, az integer akkor is az marad ami volt. pozitív vagy negatív előjelű egész szám.
Az elemi és az összetett adattípusok között meg az a különbség, amit már leírtam. Összetett adattípus csak elemi tipusokból hozható létre. Az elemi adattípus meg azért elemi, mert nem bontható fel más elemi típusokra, csak valamely rá jellemző tulajdonság elvesztésével, de akkor már nem az, ami volt.
Azt hiszem, felesleges ezt így folytatni. Pláne ebben a stílusban.
Csak annyit javasolhatok, tanulj még.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!