ηδάζθςκ: εµήηνεξ Ζεσκαιηπμύν

Σχετικά έγγραφα
οµές (structures) και Eνώσεις (unions)

Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Η/Υ. Ενότητα 9: Ειδικά θέματα Δομών Δεδομένων

Λύζεηξ αζθήζεςκ ζενμόηεηαξ

ΔΙΑΓΩΝΙΣΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΓΕΝΙΚΗΣ Γ ΛΥΚΕΙΟΥ

Επακαιεπηηθό ζέμα ζημ 1 0 θεθάιαημ

i, ημ μκμμάδμομε ζύκμιμ ηςκ

Διάλεξη 8: Δομές, Ενώσεις και Απαριθμητοί Τύποι

Δηάιελε 6: Δηαπείνηζε Μκήμεξ & Δοκαμηθέξ Δμμέξ Δεδμμέκςκ

1 η Ε π α ν α λ η π τ ι κ ή Ά σ κ η σ η

Καηακμώκηαξ ηα Νέα Μέζα. Εογεκία Σηαπένα

Multiple Choice Examination

Π α ζ ο κ ζ ή μ α η α μ ε κ ύ μ α η α ή η α κ ή δ ε γ κ ς ζ η ά : Γ ι ε ο ζ ε ν ί α, Δ ε μ μ θ ν α η ί α, α δ μ ύ ι ς η ε Γ ι ι ά δ α.

Η ΠΡΟΝΟΟΚΟΜΔΙΑΚΗ ΦΡΟΝΣΙΓΑ. με ηην έγκριζη ηοσ Εθνικού Κένηροσ PHTLS διοργανώνει ζηις Ιανοσαρίοσ 2012

Οδεγόξ Φνήζεξ Webmail

ΕΞΟΡΤΞΗ & ΚΑΣΑΚΕΤΕ ΣΗΝ ΕΤΡΩΠΗ ΜΑΘΗΜΑ 43

ΩΤΟΣΚΛΗΡΥΝΣΗ. Δρ Εμμανουθλ Χατζημανώλης. Ωτορινολαρυγγολόγος-Χειρουργός Κεφαλής και Τραχήλου. Δ/τής της Κλινικής Κεφαλής και Τραχήλου νοσ.

ΙΑΘΕΙΑ Β1.1 Μ ΝΘΑΚΕΠΕΟ ΓΕ

Φνήζημεξ Λεηημονγίεξ ηςκ. Windows 7

Αμαμεώζιμες πηγές εμέργειας

Οκμμάδμομε δηαηεηαγμέκμ δεύγμξ με πνώημ ζημηπείμ ημ θαη δεύηενμ ημ (ζομβμιηθά:(, ) ), ημ δηζύκμιμ: { },{, . Δειαδή:

Πνμθόπημξ Mαγηάηεξ,

Δηαπείνηζε πμιιαπιώκ ειεθηνμκηθώκ δηεοζύκζεωκ

Μέηνα Αημμηθήξ Πνμζηαζίαξ

Παραγωγή Τελικού Κώδικα. Γιώργος Μανής

Η γλώσσα C. Νέοι και σύνθετοι τύποι (typedef & structs & unions)

Μυοπάθεια και τατίνες

Πνμεγμύμεκεξ γκώζεηξ: Τα παηδηά λένμοκ κα δηαβάδμοκ θαη κα γνάθμοκ θάπμηεξ θςκμύιεξ θαη μνηζμέκα γνάμμαηα.

GANODERMA LUCIDUM «μακηηάνη ηςκ ζεώκ» Τμ θαζμιηθό θάνμαθμ ηεξ θύζεξ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΘΕΜΑ 1 (μμκάδεξ 25) Η πενίμδμξ ηεξ ηαιάκηςζεξ ημο ζώμαημξ αοημύ είκαη: i) Τ = π/2s ii) Τ = 2/πs iii) Τ = 1/πs iv) Τ = 2s iv) Τ = πs (αηηημιόγεζε)

Θμγμηεπκία γηα Παηδηά Ζ

ΜΑΘΕΜΑ Β2.1 Ε ΤΝΘΓΕ ΣΕ ΑΣΜΟΦΑΖΡΑ, Ε ΑΣΜΟΦΑΖΡΑ, ΟΖ ΑΝΓΜΟΖ.

ΓΗΔΕΘΩΟΓΖΟ ΠΕΟ ΝΑΖΔΑΓΩΓΖΗΕΟ ΟΜΘΕΟ, ΑΝΘ. Αθαδεμασθό έημξ: (πνμκμιμγηθή ζεηνά)

Η γλώσσα C. Νέοι και σύνθετοι τύποι (typedef & structs & unions)

1. Camtasia. 2. Audacity. 3. Movie Maker

Κα ακαγκςνίζμομε ημ ηηηάκημ ένγμ (όιςκ) ηςκ ενγαδμμέκςκ ζημ CERN. Να απμθηήζμομε βηςμαηηθέξ γκώζεηξ γηα πενίπιμθεξ έκκμηεξ ηςκ Φοζηθώκ Γπηζηεμώκ.

Κοιμό Γεωγραφικό Υπόβαθρο για το WISE

Tνόπμη δηαθοηηανηθήξ επηθμηκςκίαξ

Οι ςδπαςλικέρ κονίερ για σπήζη ζηην οδοποιία και ηο ππόηςπο ΕΝ Δ. Τζαμαηζούληρ Δπ. Φημικόρ Μησανικόρ ΦΑΛΥΧ Δομικά Υλικά Α.Ε.

Δηάιεμε 8: Δνκέο, Ελώζεηο θαη Απαξηζκεηνί Τύπνη

ΓΤΡΩΠΗ. 5 ή 6 ΕΙΓΞΓΟ ΑΓΞΜΝΜΞΖΗΕ ΓΗΔΞΜΙΕ ΖΠΑΘΖΗΜ ΝΑΚΜΞΑΙΑ ΒΓΚΓΠΖΑ-ΦΘΩΞΓΚΠΖΑ-ΟΖΓΚΑ-ΞΩΙΕ ΑΚΑΩΞΕΟΓΖΟ : 5ΕΙΓΞΓΟ : ΗΑΘΓ ΠΞΖΠΕ 6ΕΙΓΞΓΟ : KAΘΓ ΠΞΖΠΕ

Τβοιδικό Ιζξδύμαμξ Μξμηέλξ transistor BJT & εκηζποηέξ. Ειεθηνμκηθή Γ Σάλε /Β ελάμεκμ Γπίθ. Ηαζεγήηνηα Γ. Ηαναγηάκκε

ΕΙΗΓΗΗ: Σα Πληροθοριακά σζηήμαηα ηων Νοζοκομείων ζηην Ελλάδα ηης κρίζης: Ο ρόλος ηοσ cloud computing & ηοσ Εζωηερικού Ελέγτοσ

ΔΩΚΠΑΟ ΙΓ ΠΜΚ Η. ΟΓΘ

H ΑΞΙΑ ΣΗ ΓΛΙΑ ΚΑΙ ΣΟΤ ΓΛΑΙΟΛΑΔΟΤ ΜΤΘΟΙ & ΠΡΑΓΜΑΣΙΚΟΣΗΣΑ. << Γιηά & Λάδη >>

Κοσμάς Λιάμος Γενικός Ιατρός Επιμελητής Β Περιυερειακό Ιατρείο Βελβεντού Κέντρο Τγείας ερβίων

Η Άιμτα. Οη γμκείξ ηεξ θαη μη γμκείξ ηεξ Ζόιεξ έθακακ μήκοζε ζημ πνώεκ αθεκηηθό ημοξ θαη θαηάθενακ κα ημκ θοιαθίζμοκ.

ΜΑΘΗΜΑ Β 5.1 ΟΡΓΑΝΙΜΩΝ Η ΓΓΩΓΡΑΦΙΚΗ ΚΑΣΑΝΟΜΗ ΣΩΝ. Ελέμη Γ. Παλούμπα, Χημικός, Πειραματικό Γυμμάσιο Σπάρτης

Γοθεμία Παπαδμπμύιμο-Αιαηάθε

Μηα θμνά θη έκακ θαηνό ζε έκα μηθνό, μαθνηκό πςνηό δμύζακ δομ

Μελέηη Ηλεκηοικήπ Εγκαηάζηαζηπ. Δκπαιδεςηήρ: αββίδεο Μηράιεο. Σερληθή ρνιή Απγόξνπ. Μάθημα: Σερλνινγία Ηιεθηξηθώλ Εγθαηαζηάζεσλ

ΜΤΟΚΑΡΔΙΟΠΑΘΕΙΕ MΤΟΚΑΡΔΙΣΙΔΑ ΜΕΛΕΣΗ ΜΕ ΓΑΔΟΛΙΝΙΟ

ΑΣΚΗΣΕΙΣ ΣΤΟΥΣ ΜΙΓΑΔΙΚΟΥΣ AΡΙΘΜΟΥΣ

Τίτλος Μαθήματος: Εισαγωγή στη Θεωρία και Ανάλυση Αλγορίθμων

Τα αμηκμλέα ζημ πνάζηκμ ηζάη

ΙΑΘΕΙΑ Α1.3 Ε ΥΡΕΕ ΣΩΚ ΥΑΡΣΩΚ ΣΕΚ ΗΑΘΕΙΓΡΖΚΕ ΔΩΕ. Ελένη Παλούμπα, Χημικός, Πειραματικό Γσμνάσιο Σπάρτης

ΓΑΣΡΟΟΙΟΦΑΓΙΚΗ ΠΑΛΙΝΔΡΟΜΗΗ ΚΑΙ ΑΝΑΠΝΓΤΣΙΚΟ ΤΣΗΜΑ. Δν. Δεμήηνεξ Καπεηάκμξ Γπημειεηήξ A Γαζηνεκηενμιμγηθή Κιηκηθή Γ.Ν. «Γεώνγημξ Παπακηθμιάμο»

Σ Ο Ξ Υ Η Φ Θ Ω Μ Ι Α Α Π Θ Ζ Ξ Λ Ε Μ Ω Μ

Γπημέιεηα: Ιανία Παπαιεμκηίμο, Φηιόιμγμξ

Τπμιμγηζμόξ ηεξ ηαπύηεηαξ ηεξ πεμηθήξ ακηίδναζεξ ημο Mg με HCl

HY-335 : Δίθηοα Υπμιμγηζηώκ

ΜΑΘΗΜΑ Β3.2 Β ΥΠΟΘΑΛΑΣΣΙΟ ΑΝΑΓΛΥΦΟ

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου

4ε Γξαπηή Εξγαζία. Θέκα 1 ν : Μειέηε Πεξίπησζεο Α

Σωλήμες Ηλεκηρικώμ Εγκαηαζηάζεωμ. Εκπαιδεσηής: Σαββίδης Μιτάλης. Τετνική Στολή Ασγόροσ. Μάθημα: Τετνολογία Ηλεκηρικών Εγκαηαζηάζεων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. Διαφάνειεσ: Βαςικζσ Αρχζσ Προγραμματιςμοφ Α.Π.Θ. Δθμιτρθσ Βράκασ

Κεθάλαιο 3 Κρσπηογραθία δημόζιοσ κλειδιού και πιζηοποίηζη ασθεμηικόηηηας μημσμάηφμ

ΠΓΡΙΓΥΟΜΓΝΑ ΓΙΑΓΩΓΗ...3 ΜΓΡΟ Ι ΝΟΜΟΘΓΣΙΚΟ ΠΛΑΙΙΟ ΚΑΙ ΑΝΑΝΓΩΙΜΓ ΠΗΓΓ ΓΝΓΡΓΓΙΑ ΚΓΦΑΛΑΙΟ Α ΓΘΝΙΚΟ ΘΓΜΙΚΟ ΠΛΑΙΙΟ ΣΩΝ ΑΠΓ

Μαθηματικά: Φτιάχνω ρομπότ με τον ηλεκτρονικό γεωπίνακα

Η γκώμε ηφκ θοηηεηώκ γηα ηεκ Πακεπηζηεμηαθή Φοηηεηηθή Λέζτε ΑΠΘ Τα αποηειέζμαηα Ερφηεμαηοιογίοσ

Διδάσκων: Παναγιώτης Ανδρέου

ύλνψε απνηειεζκάηωλ κεηξήζεωλ ζπγθεληξώζεωλ αηωξνύκελωλ ζωκαηίδίωλ PM 10 ζην Βόιν:

Τα έλη παηδηά γεμίδμοκ με πανά ηηξ θηωπέξ μηθμγέκεηεξ.

H XHMEIA EINAI ΙΑΓΖΗΕ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Παναγιώτης Ανδρέου

ΜΓΛΓΣΗ ΣΩΝ ΓΠΙΠΓΔΩΝ ΦΤΙΚΩΝ ΑΝΣΙΜΙΚΡΟΒΙΑΚΩΝ ΠΓΠΣΙΔΙΩΝ ΚΑΙ ΔΓΙΚΣΩΝ ΒΑΚΣΗΡΙΔΙΑΚΗ ΑΛΛΟΘΓΗ Γ ΚΙΡΡΩΣΙΚΟΤ ΑΘΓΝΓΙ

ΥΟΛΙΚΟ ΕΣΟ ΠΡΟΓΡΑΜΜΑ ΠΓΡΙΒΑΛΛΟΝΣΙΚΗ ΑΓΩΓΗ ΣΙΣΛΟ: <<ΣΑ ΠΡΟΪΟΝΣΑ ΣΟΤ ΣΟΠΟΤ ΜΟΤ ΜΓΑ ΑΠΟ ΣΗΝ ΠΑΡΑΔΟΗ ΚΑΙ ΣΟΝ ΠΟΛΙΣΙΜΟ>>

ΔΙΑΓΩΝΙΜΑ Ο.Π. ΑΝΘΡΩΠΙΣΙΚΩΝ ΠΟΤΔΩΝ ΛΑΣΙΝΙΚΑ

Βαζηθέξ Ανπέξ Κιηκηθήξ Γλέηαζεξ. Σπύνμξ Δαμάζθμξ

«Πξαθηηθέο Έληαμεο ζηνλ Επξσπατθό Χώξν»

ΜΗΦΑΝΙΚΑ ΚΥΜΑΤΑ. Κύμα μκμμάδεηαη ε δηάδμζε μηαξ δηαηαναπήξ ζημ πώνμ με μνηζμέκε ηαπύηεηα, ε μπμία μκμμάδεηαη ηαςύηηηα διάδξζηπ.

ΣΧΕΤ. : Η αριθ. πρωτ. Δ 17 Ε ΕΞ 2013/ Δ.Υ.Ο.

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Γπέθηαζε ηςκ Ονίςκ ηεξ Γπηιοζημόηεηαξ

Copyright Fonderie Sime S.p.A.

ΑΓΠΠ 2o Γπαμαληπηικό Διαγώμιζμα

r 1 Π 1 r 2 Π 2 πέτασμα στισμή μομοτρωματικό υως στισμή

Γηζαγωγή ζηεκ Πιεζοζμηαθή Οηθμιμγία. Α. Φακηηκμύ

Η οµαδοποίεζε ηυν δώυν

Διάλεξη 19η: Δομές δεδομένων

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Δομημένος Προγραμματισμός (ΤΛ1006)

Πολσμερή και πολσμερισμός. Εργαςία Χθμείασ Β Τετραμινου

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Διαδικασιακός Προγραμματισμός

Transcript:

Δηάιελε 5: Δμμέξ (structures) θαη Εκώζεηξ (unions) Σηεκ εκόηεηα αοηή ζα μειεηεζμύκ ηα ελήξ επημένμοξ ζέμαηα: Δμμέξ, θςιηαζμέκεξ δμμέξ, ηνόπμη δήιςζεξ δμμώκ, δμμέξ ςξ πανάμεηνμη ζε ζοκανηήζεηξ, δείθηεξ ζε δμμέξ, Αοηό-ακαθμνηθέξ δμμέξ, πνήζε εκώζεςκ. ηδάζθςκ: εµήηνεξ Ζεσκαιηπμύν ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-1

Δμμέξ Δμμή είκαη μηα ζοιιμγή από μηα ή πενηζζόηενεξ μεηαβιεηέξ, πηζακώξ δηαθμνεηηθώκ ηύπςκ πμο μμαδμπμημύκηαη με έκα όκμμα γηα εοθμιόηενμ πεηνηζμό. Ονηζμόξ δμμώκ γίκεηαη με ηε ζύκηαλε: struct name { δηλώζεις πεδίων }; Πανάδεηγμα: struct Person { char firstname[15]; char lastname[15]; char gender; int age; }; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-2

Δμμέξ Η ιέλε struct εηζάγεη ηε δήιςζε μηαξ δμμήξ. Οη μεηαβιεηέξ πμο θαημκμμάδμκηαη μέζα ζηε δμμή μκμμάδμκηαη μέιε ή πεδία. Μηα δήλωζη struct μνίδεη έκα ηύπμ. Γηα κα δειώζμομε μεηαβιεηέξ ή πίκαθεξ ηύπμο δμμήξ γνάθμομε: Εηικέηα (tag) - προαιρεηικό πεδίο struct Person x; struct Person people[40]; Εκαιιαθηηθά μπμνμύμε επίζεξ κα παναιείρμομε ηεκ εηηθέηα ηεξ δμμήξ θαη κα πενηγνάρμομε απιά ηα μέιε ηεξ: struct { char firstname[15]; char lastname[15]; char gender; int age; } x, people[40]; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-3

Δμμέξ Αοςικξπξίηζη μηαξ μεηαβιεηήξ ή πίκαθα ηύπμο δμμήξ γίκεηαη απμδίδμκηαξ ηημέξ ζηα μέιε ςξ ελήξ: struct Person x = { Aνδρέας, Ανδρέοσ, M, 43}; struct Person people[] = {{ Χρίζηος, Ανδρέοσ, M, 43}, { Μαρία, Γεωργίοσ, F, 38}, { Χρίζηος, Χαραλάμποσς, Μ, 14} }; Aκαθμνά ζε μέιμξ μηαξ δμμήξ γίκεηαη μέζς ηεξ θαηαζθεοήξ: όνομα-δομής.μέλος Γηα πανάδεηγμα if (x.age > 40) printf( %s age: %d \n, x.lastname, x.age); ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-4

typedef Για να αποθεύγεηε η ζσνετής τρήζη ηοσ «struct structname», μπορούμε να τρηζιμοποιήζοσμε ηην typedef H C διαθέηει ηην typedef για δημιοσργία νέων ονομάηων ηύπων δεδομένων, π.τ. typedef unsigned short int uint16; Φηιάτνει ηον ηύπο uint16. Έηζι αποθεύγοσμε να γράθοσμε κάθε θορά «unsigned short int» και δηλώνοσμε απλά uint16 X, Y; Παρόμοια, typedef char* String; Τέλος μπορεί να τρηζιμοποιηθεί για να δώζει ονόμαηα ζε δομές: struct Person{ char firstname[15]; char lastname[15]; char gender; int age; }; struct Person p; p.age = 12; typedef struct{ char firstname[15]; char lastname[15]; char gender; int age; } Person; Person p; p.age = 12; ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-5

Φςιηαζμέκεξ Δμμέξ Δμμέξ μπμνεί κα είκαη αιιειέκζεηεξ, δειαδή κα θςιηάδμκηαη ε μηα μέζα ζηεκ άιιε, δεμημονγώκηαξ πημ πμιύπιμθεξ δμμέξ: struct Person { char firstname[15]; int age; }; struct family { struct Person father; struct Person mother; int numofchild; struct Person children[5]; }; int main(void){ struct Person x, y, z; struct family fml; ή (καλύηερα) typedef struct { char firstname[15]; int age; } Person; typedef struct { Person father; Person mother; int numofchild; Person children[5]; } Family; int main(void){ Person x, y, z; Family fml; fml.numofchild = 2; strcpy(fml.father.firstname, Joe ); strcpy(fml.children[0].firstname, Mary ); } fml.numofchild = 2; strcpy(fml.father.firstname, Joe ); strcpy(fml.children[0].firstname, Mary ); ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για } Ηλ. Μητ. και Μητ. Υπολ. 5-6

Δμμέξ θαη Σοκανηήζεηξ Eπηηνεπηέξ πνάλεηξ ζε μηα δμμή είκαη: ε αμηιγοαθή ηεξ, ε αμάθεζη ηημήξ ζ αοηήκ (ζακ ζύκμιμ), ε εναγωγή ηεξ δηεύζοκζήξ ηεξ, θαη ε ποξζπέλαζη ηωμ ζηξιςείωμ ηεξ. Μεηαβιεηέξ ηύπμο δμμήξ μπμνμύκ κα πεναζημύκ ςξ μνίζμαηα ζε ζοκανηήζεηξ όπςξ επίζεξ θαη κα επηζηναθμύκ ςξ απμηειέζμαηα ζοκανηήζεςκ. Πανάδεηγμα: Person inc_age (Person x){ x.age += 1; return x; } Person x1, x2; x2 = inc_age(x1); Πέραζμα δια ηιμής (ηο x ανηιγράθεηε μέζα ζηην ζσνάρηηζη) ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-7

Δμμέξ θαη Σοκανηήζεηξ (ζοκ) Δμμέξ δεκ μπμνμύκ κα ζογθνηζμύκ: π.π. ε έθθναζε x1 == x2 δεκ είκαη έγθονε. Ακ ζέιμομε κα ζογθνίκμομε δομ δμμέξ πνέπεη ε ζύγθνηζε κα γίκεη βάζε ηςκ πεδίςκ αοηώκ ηςκ δμμώκ π.π. x1.age == x2.age Ελάζθεζε (ζημ ζπίηη): Να γνάρεηε ζοκάνηεζε ε μπμία παίνκεη δύμ παναμέηνμοξ ηύπμο Person θαη επηζηνέθεη ηεκ ειηθία ημο μεγαιύηενμο αηόμμο. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-8

Δείθηεξ ζε Δμμέξ Μπμνμύμε επίζεξ κα πνεζημμπμηήζμομε δείκηεπ ζε δξμέπ. Γηα πανάδεηγμα ε δήιςζε Person *pp, p; δειώκεη όηη ε μεηαβιεηή pp είκαη δείθηεξ πνμξ μηα δμμή ηύπμο Person. Έηζη μπμνμύμε κα γνάρμομε pp = &p; printf( %d, (*pp).age); óπμο *pp είκαη ε δμμή πμο δείπκεηαη από ημκ δείθηε, εκώ (*pp).firstname είκαη ημ πνώημ πεδίμ ηεξ δμμήξ. Πνμζμπή: ε πνμηεναηόηεηα ημο ηειεζηή μέιμοξ δμμήξ,., είκαη μεγαιύηενε από αοηή ημο ηειεζηή έμμεζεξ ακαθμνάξ, *. Επξμέμωπ ξι παοεμθέζειπ ζηξ (*pp).firstname είμαι απαοαίηηηεπ. Δειαδή ημ *a.age=5 ζα δώζεη compile error ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-9

Δείθηεξ ζε Δμμέξ Δείθηεξ γηα δμμέξ πνεζημμπμημύκηαη ηόζμ ζοπκά πμο πανέπεηαη μ πημ θάης εκαιιαθηηθόξ ζομβμιηζμόξ ςξ ζοκημμμγναθία: (*p).μέλος_δομής = p->μέλος_δομής } Ακ μηα μεγάιε δμμή πνόθεηηαη κα μεηαβηβαζηεί γηα επελενγαζία ζε μηα ζοκάνηεζε γεκηθά είκαη απμηειεζμαηηθόηενε η μεηαβίβαζη εμόπ δείκηη ποξπ ηη δξμή και όςι η αμηιγοαθή ηηπ. Αοηό μπμνεί κα γίκεη όπςξ θαη ζε απιμύζηενεξ δμμέξ δεδμμέκςκ (δειαδή με ημ &). Person *p; Person p; (δέζμεσζη τώροσ για ηο *p [malloc]).... initperson(&p); initperson(p);... ή... void initperson(person *p){ void initperson(person *p){ strcpy( p->firstname, Aνδρέας ); strcpy( p->firstname, Aνδρέας ); strcpy( p->lastname, Ανδρέοσ ); strcpy( p->lastname, Ανδρέοσ ); p->gender = M ; p->gender = M ; p->age = 43; p->age = 43; } ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-11

Eκώζεηξ (unions) Ο ηύπμξ union πνεζημμπμηείηαη ζηεκ C γηα ηε δήιςζε μεηαβιεηώκ πμο μπμνμύκ κα απμζεθεύζμοκ ζε δηαθμνεηηθέξ ζηηγμέξ δεδμμέκα δηαθμνεηηθώκ ηύπςκ θαη μεγεζώκ ζηεκ ίδηα πενημπή μκήμεξ. Θεςνήζηε ηεκ πενίπηςζε πμο ζέιμομε μηα ζηαζενά ζε έκα πνόγναμμα κα έπεη ςξ ηημή είηε μηα αθέναηα ηημή (int) είηε μηα πναγμαηηθή ηημή (float). Θα μπμνμύζαμε κα γνάρμομε: struct { int ival; float fval; } constant; θαη κα ημπμζεημύμε ηε ζηαζενά μαξ ζε έκα από ηα δύμ πεδία ηεξ δμμήξ ζύμθςκα με ηεκ ηημή ηεξ. Μεημκέθηεμα αοηήξ ηεξ ιύζεξ είκαη όηη ζπαηαιά άζθμπα μκήμε: δεζμεύεη μκήμε γηα δύμ πεδία εκώ ζα πνεζημμπμηεζεί μόκμ έκα. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-12

Eκώζεηξ Χνεζημμπμηώκηαξ εκώζεηξ ε δήιςζε ηεξ μεηαβιεηήξ μαξ γίκεηαη ςξ ελήξ: union { int ival; double fval; } A,B; H μμήμη πξρ δεζμεύεηαι ζε αρηή ηημ πεοίπηωζη είμαι η μέγιζηη πξρ απαιηείηαι για απξθήκερζη ακοιβώπ μιαπ μεηαβληηήπ από ξπξιξδήπξηε από ηξρπ ηύπξρπ ηωμ πεδίωμ (ζηημ πιξ πάμω πεοίπηωζη η μμήμη πξρ απαιηείηαι για απξθήκερζη είμαι 8 bytes). Η ηημή πμο ακαθηάηαη θάζε θμνά είκαη ε αοηή πμο απμζεθεύηεθε πημ πνόζθαηα θαηά ηεκ εθηέιεζε. Είκαη εοζύκε ημο πνμγναμμαηηζηή κα παναθμιμοζεί θαη κα γκςνίδεη πμημξ ηύπμξ είκαη απμζεθεομέκμξ ζε μηα έκςζε. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-13

Eκώζεηξ #define INT_TYPE 1; #define REAL_TYPE 2; struct item { int type; union { int ival; float fval; } constant; } struct item x; if (x.type == INT_TYPE) printf( value of const = %d\n, x.constant.ival); if (x.type == REAL_TYPE) printf( value of const = %f\n, x.constant.fval); ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μητ. και Μητ. Υπολ. 5-14