Δημιουργώντας ένα σύνθετο τύπο δεδομένων σε C περιλαμβάνει τη δημιουργία αυτό που είναι γνωστό ως μια δομή , με τη χρήση του " struct " λέξη κλειδί. Οι δομές αυτές θα περιέχουν συνήθως δύο ή περισσότερες μεταβλητές δεδομένων , και αντιπροσωπεύουν ένα συνεκτικό τύπο δεδομένων ( και όχι μόνο δρα ως μια συλλογή από τυχαία δεδομένα ) . Για παράδειγμα, η ακόλουθη δομή C αντιπροσωπεύει έναν κόμβο σε μια ευρύτερη δομή δεδομένων , και περιέχει ένα κομμάτι των δεδομένων , και ένα δείκτη σε μια άλλη δομή του ίδιου τύπου :
struct του κόμβου {
int δεδομένων = 1 ?
struct * κόμβου επόμενη?
} ?
εικόνων Δείκτες
Η
Μέσα στη δομή " Node" υπάρχει pointer σε μια άλλη δομή του κόμβου . Δείκτες σε δομές είναι πολύ κοινό κατά τη διέλευση μεταβλητές δομή των λειτουργιών . Επίσης, είναι ένας παράγοντας , όταν αποφασίζουν ποια σημειογραφία ένας προγραμματιστής πρέπει να χρησιμοποιήσετε για την αναφορά των δεδομένων δομής . Δείκτες δημιουργήσετε μια αναφορά μνήμης σε έναν τύπο δεδομένων , και όχι η δημιουργία μια ρηχή μεταβλητή για τον τύπο δεδομένων . Έτσι, στο ακόλουθο παράδειγμα , η πρώτη δήλωση που δηλώνει μια μεταβλητή δομή σε ένα τοπικό πεδίο εφαρμογής , που σημαίνει ότι πρέπει να αντιγραφεί και να μετακινηθούν . Η δεύτερη δήλωση δηλώνει ένα δείκτη σε μια δομή στη μνήμη που επιτρέπει τα πράγματα όπως είναι δυναμική κατανομή μνήμης :
struct του κόμβου x ?
Struct * κόμβος y ?
Εικόνων
Dot συμβολισμός
Η
Ο συμβολισμός που απαιτούνται για την πρόσβαση στα δεδομένα των δομών εξαρτάται από το πλαίσιο της δομής . Αν ο προγραμματιστής δηλώνει μια μεταβλητή δομή ως μια τοπική μεταβλητή , τότε θα έχουν πρόσβαση στα δεδομένα μέσω του dot σημειογραφία . Dot σημειογραφία συνδέει απλά μια μεταβλητή δομή και ένα μέλος της δομής δεδομένων, μέσα από μια τελεία σύμβολο ( " . " ) . Τα παρακάτω παραδείγματα δείχνουν πώς ο προγραμματιστής θα ανακτήσετε δεδομένα από μια μεταβλητή του κόμβου μέσω συμβολισμός :
struct του κόμβου x ?
Int j = x.data ? //J ισούται τώρα με ένα
Η Arrow Συμβολισμός
Η
το άλλο πλαίσιο για την ανάκτηση δεδομένων από τις δομές είναι όταν ο προγραμματιστής έχει ένα δείκτη σε μια δομή και όχι μια τοπική μεταβλητή . Όταν ο προγραμματιστής δημιουργεί ένα δείκτη σε μια δομή , δύο πράγματα πρέπει να συμβούν . Πρώτον, πρέπει να δηλώσει το δείκτη του δομή . Δεύτερον , ότι πρέπει να διαθέσει τη μνήμη , έτσι ώστε η μνήμη αναφορές δείκτη με το κατάλληλο μέγεθος . Στη συνέχεια , μπορεί να χρησιμοποιήσει το βέλος σημειογραφία ( " - > " ) για πρόσβαση σε δεδομένα :
struct * κόμβος y ?
Y = malloc ( sizeof ( struct Node) ) ? //Εκχωρεί μνήμη στο y στο μέγεθος ενός κόμβου struct
int j = y - > δεδομένα ? //ακέραιο j ισούται τώρα με ένα
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα