Kezdőoldal » Számítástechnika » Programozás » Mire jó? (C:struct)

Mire jó? (C:struct)

Figyelt kérdés

egy olyan változó amiben több típus van

én így szűröm le!!

de hogyan kell használni??

mi értelme van??

mert struct on kívülis megycsinálhatom a vaáltozókat!!

vagy kilehet őket egyszerre írni??

nagyon nem értem! nincsen rendes anyagom!!


2011. máj. 31. 19:17
 1/4 anonim ***** válasza:

"egy olyan változó amiben több típus van

én így szűröm le!!"

Egy olyan összetett típus ami több típusból van összerakva (ezek a típusok is lehetnek szintén struktúrák).

A c struktúra tulajdonképpen a pascal rekord megfelelője.

"mi értelme van??

Összetetteb dolgok leírására, (sokkal bonyorultabb lenne e nélkül főleg valami nagyon összetett adatstruktúra) pl egy nyilvántartó rendszerben az gyár,raktár,ember stb. Ezek mindegyike egy típus. Vegyük az embert. struct Ember egy olyan típus aminek van neve címe személyi azonosítója, születési ideje.

Ha az írod hogy int i akkor egy int a konkrét típus, i ennek a típusnak egy példánya. Ha azt írom hogy struct Ember e; akkor a strukt Ember egy típus e ennek egy példánya.


struct Datum {

int ev;

int ho;

int nap;

};


struct Ember {

struct Datum szuletesiido;

char* nev;

char* cim;

int szemelyiazonosito;

};


"de hogyan kell használni??"

Inkább egy egyszerűbb példát írok. Legyen egy Pont típus ami 2 int-et tartalmaz az x és y koordináltát.


struct Pont {

int x;

int y;

};


struct Pont pontom;


int main() {

pontom.x = 4;

pontom.y = 7;

}


"vagy kilehet őket egyszerre írni??"

Ha megvan valósítva a kiíró eljárás.

2011. máj. 31. 21:54
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
Első jól leírta, annyit tennék hozzá, hogy az ilyen szorosan összetartozó adatokat egy változóként is lehet kezelni, és kirakni fájlba, visszaolvasni, stb. Pl. ha egy függvénynek át akarod adni a fenti pontot, akkor elég a struct típusú pont változó címét átadni, nem kell külön az x-et és y-t. Nagyobb struktúrák esetén még hatékonyabban lehet egyben kezelni így az összetartozó adatokat.
2011. jún. 1. 12:46
Hasznos számodra ez a válasz?
 3/4 bongolo válasza:

Mind igaz, amit az előző válaszolók írtak, de én más oldalról nézném:


Mindaddig, amíg csak egyedi változóid vannak (akár globálisak, akár lokálisak), addig mindent meg lehet csinálni struct nelkül is. Viszont ha már több adatot akarsz használni, akkor kezdenek gondjaid lenni. Mondjuk meg tudod oldani a több adat tárolását tömbökkel, csak kezd csúnya lenni a program. Pl. ha akarsz tárolni 1000 dátumot, akkor jó így is:


int ev[1000];

int ho[1000];

int nap[1000];


de olvashatóbb a dolog, ha az egybetartozó adatokat egy struktúrában tárolod


struct Datum datumok[1000];


(egyik dátuimhoz való hozzáférés: datumok[624].nap)


Ha viszont a sok egyedi tömb már nem elég jó, és pl. előre nem ismert méretű láncolt listában akarod tárolni a memóriában az adatokat, akkor egyedül a struktúra a kézenfekvő megoldás.

2011. jún. 1. 13:19
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

aha akkor fojtatom a próbálkozásokat!!

köszi szépen mindent!!

2011. jún. 2. 18:17

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!