Előadások c

Előadások C / C ++: vegyület adattípusok (struktúrák)

Képzeljük el, hogy azt akarjuk, szoftver folyamat az információkat a hallgatók. Az adatok minden diák közé többféle nagyságrendű - a húr a nevét és monogram, egy egész jelezve a tanuló életkora, átlagos pontszámot, ami egy igazi érték, stb A legegyszerűbb módja a probléma megoldásának - írja a beállított program lényeges változók:

Amikor a diákok egyre, akkor át kell adni a változókat tömb:

Hogy információkat kapjon az utolsó diák, meg kell kezelni értékének neve. [4] kor [4], és a labdát [4]. Így információt egy tárgy „szétszórt” több konténerek tömb, ami rendkívül kényelmetlen műveletek „hallgató” egységes egészként. Leküzdeni ezt a kellemetlenséget strukturálhatják. lehetővé teszi, hogy összekapcsolják a különböző típusú egyetlen objektum adatait.

Így a szerkezet - a fő összetevője az adatok típusát. Ezzel szemben a tömb, hogy összehozza az egyik objektum értékek, esetleg eltérő adattípusok. Ez teszi a szerkezet az elsődleges modellező eszköz a programban valós tárgyak:

Kompatibilitását a nyelv a C előtt struct kulcsszó gyakran írt szereplő Type Definition typedef. A C ++, ez az állítás felesleges.

Bemutatjuk a változókat az „új” diák Van típusú adatokat.

Nincs különbség a leírás a változók egyszerű típusok int. lebegnek, stb sz.

működés eléréséhez használt egyedi adatokat a hallgató, a leírásban felsorolt ​​szerkezeti típusú (szerkezet mezők). ( „Point”) alkalmazható a felvétel struktura.pole formában. Például S.NAME azt jelentené, a „név” a diák, akinek az információt tárolja a változó nevű s.

Így, a mező struktúra lehetővé teszi, hogy az összes ugyanazt a műveletet, mint a „normális” változó típusának megfelelő adatok:

Tekintsük első két lépés a példa.

1. st_print funkció információkat jelenít meg a diák-típusú szerkezet. átvitt paraméterként;

2. st_new függvény kitölti az új struktúra az alapértelmezett tanulók adatait, és visszatér a szerkezetet. Tekintettel arra, hogy támogatja a feladat struktúrák nyert funkció információ ismétlődik a szerkezet s2 fő funkciója.

Megjegyezzük, hogy az átviteli függvény a paraméterként, vagy visszatérés függvényében egy nagy méretű struktúrák lehetnek tele Veremtúlcsordulás. Egy szerkezet, hogy meghatározzuk a hangerőt a RAM-ot lehet szabványos eszközökkel:

Ha menteni információt egy csoportja 20 diák természetesen néz leírása egy sor szerkezetek:

Hozzáférés a szerkezet lehet, és ezen keresztül a mutatót.

Ezután végre ptr ++ beolvasandó lista vagy egy tömb struktúrák oly módon, mint mi a mutató az egyszerű adattípusok.

Hozzáférés a mező szerkezete révén a mutatót a következő alakban:

A zárójelben van szükség, mert a prioritások a C ++ nyelven műveleteket. Vedd úgy néz ki, nehézkes, így ahelyett, hogy ő általában emlékeztető rövidítések

1. példa mutat funkció kiírja tájékoztatás a tanuló s (nincs kijelzés):

Ugyanez a funkció egy mutatót:

Az első esetben a verem át sizeof (hallgató) = sizeof (char) * 20 + sizeof (int) + sizeof (float) bájt (28 bájt, amikor char szimbólumok - egy byte), a második esetben - 4 vagy 8 byte (a méretétől függően a mutató a 32-bites vagy 62-bites számítógépes architektúra).

Az i-edik elem a tömb szerkezete a hívást az első funkció lenne a forma

2. példa st_new funkciót a pointer fent látható venné formájában

Mivel az új üzemeltető memóriát a „halom”, és nem a verem, akkor lehetséges, hogy kiadja a törlési üzemben.

Itt egy példa 2 programot.

Az első program, minden tanuló mezőstruktúra - statikus, nem dinamikus memória számukra biztosított, így a feladat ezeknek a szerkezeteknek megfelelően:

Esetleg, ahelyett, tápvezetékek

Az elem szerkezete lehet egy szerkezete egy másik szerkezeti típusú vagy egy mutatót a szerkezetét a típus. Az utolsó fontos funkció lehetővé teszi, hogy megszervezze a struktúrák dinamikus adatszerkezetek, mint például vermek, sorok és fák. Dinamikus struktúra lesz szó egy külön téma.

Végül megjegyezzük, hogy a legtermészetesebb megőrzése statikus struktúrák bináris adatfájlok (mint például a méret a szerkezet byte - fix) és az adatcserét ezeket a fájlokat keresztül eljárás fread / fwrite stdio.h re vagy írható / olvasható a fstream:

Szerkezetekhez pointerek általában alkalmazhatatlanná mondta. Alternatív írni egy programot, amely lehetővé teszi tanulót, hogy olvassa egy sor szerkezetek dinamikus mező nevét a szöveges fájlt data.txt következő:

stb Feltételezzük, hogy a fájl az aktuális az alkalmazás végrehajtható mappát. A maximális bejegyzések száma még korlátozzák ST állandó.

A program magában foglalja egy egyszerű védelmét érvénytelen adatokat a forrás fájlban.

Kapcsolódó cikkek