Μια μεταβλητή είναι ένα όνομα για μια θέση στη μνήμη του υπολογιστή όπου αποθηκεύετε κάποια δεδομένα.
Φανταστείτε μια πολύ μεγάλη αποθήκη με πολλούς αποθηκευτικούς χώρους, τραπέζια, ράφια, ειδικά δωμάτια κ.λπ. Αυτά είναι όλα τα σημεία όπου μπορείτε να αποθηκεύσετε κάτι. Ας φανταστούμε ότι έχουμε μια κλουβί μπύρας στην αποθήκη. Πού ακριβώς βρίσκεται;
Δεν θα λέγαμε ότι αποθηκεύεται 31 '2 "από το δυτικό τοίχο και 27' 8" από τον βόρειο τοίχο. Σε προγραμματισμός δεν θα λέγαμε επίσης ότι ο συνολικός μου μισθός που πληρώθηκε φέτος αποθηκεύεται σε τέσσερα bytes ξεκινώντας από τη θέση 123,476,542,732 σε RAM.
Δεδομένα σε υπολογιστή
Ο υπολογιστής θα τοποθετήσει μεταβλητές σε διαφορετικές θέσεις κάθε φορά που θα εκτελείται το πρόγραμμά μας. Ωστόσο, το πρόγραμμά μας γνωρίζει ακριβώς πού βρίσκονται τα δεδομένα. Αυτό το κάνουμε δημιουργώντας μια μεταβλητή για να την αναφερθούμε και στη συνέχεια να αφήσουμε τον μεταγλωττιστή να χειριστεί όλες τις βρώμικες λεπτομέρειες σχετικά με το πού βρίσκεται στην πραγματικότητα. Είναι πολύ σημαντικό για εμάς να γνωρίζουμε τι είδους δεδομένα θα αποθηκεύσουμε στη θέση.
Στην αποθήκη μας, το κλουβί μας μπορεί να βρίσκεται στο τμήμα 5 του ράφι 3 στην περιοχή ποτών. Στο PC, το πρόγραμμα θα γνωρίζει ακριβώς πού βρίσκονται οι μεταβλητές του.
Οι μεταβλητές είναι προσωρινές
Αυτά υφίστανται όσο χρειάζονται και στη συνέχεια διατίθενται. Μια άλλη αναλογία είναι ότι οι μεταβλητές είναι σαν τους αριθμούς σε μια αριθμομηχανή. Μόλις πιέσετε τα κουμπιά διαγραφής ή απενεργοποίησης, οι αριθμοί εμφάνισης χάνονται.
Πόσο μεγάλο είναι μια μεταβλητή
Τόσο μεγάλο όσο χρειάζεται και όχι περισσότερα. Η μικρότερη μεταβλητή μπορεί να είναι ένα bit και η μεγαλύτερη είναι τα εκατομμύρια των ψηφιολέξεων. Οι τρέχοντες επεξεργαστές χειρίζονται δεδομένα σε κομμάτια των 4 ή 8 bytes τη φορά (CPU 32 και 64 bit), έτσι ώστε όσο μεγαλύτερη είναι η μεταβλητή, τόσο περισσότερο θα χρειαστεί να την διαβάσετε ή να την γράψετε. Το μέγεθος της μεταβλητής εξαρτάται από τον τύπο της.
Τι είναι ένας τύπος μεταβλητής;
Στη σύγχρονη γλώσσες προγραμματισμού, οι μεταβλητές δηλώνονται ότι είναι τύπου.
Εκτός από τους αριθμούς, η CPU δεν κάνει καμία διάκριση μεταξύ των δεδομένων στη μνήμη της. Το αντιμετωπίζει ως μια συλλογή από bytes. Οι σύγχρονες CPU (εκτός από αυτές σε κινητά τηλέφωνα) μπορούν συνήθως να χειριστούν τόσο αριθμητική όσο και κυμαινόμενη αριθμητική αριθμητική στο υλικό. ο μεταγλωττιστής πρέπει να παράγει διαφορετικές οδηγίες κώδικα μηχανής για κάθε τύπο, οπότε γνωρίζοντας ποιος είναι ο τύπος μεταβλητής που βοηθάει στη δημιουργία βέλτιστου κώδικα.
Τι τύποι δεδομένων μπορούν να διατηρήσουν μεταβλητές;
Οι βασικοί τύποι είναι αυτοί οι τέσσερις.
- Ακεραίες (υπογεγραμμένα και μη υπογεγραμμένα) 1,2,4 ή 8 bytes σε μέγεθος. Συνήθως αναφέρεται ως ints.
- Πλωτό σημείο Αριθμοί μεγέθους έως και 8 byte.
- Bytes. Αυτά είναι οργανωμένα σε 4s ή 8s (32 ή 64 bit) και διαβάζονται μέσα και έξω από τους καταλόγους της CPU.
- Κείμενο χορδές, μέχρι και δισεκατομμύρια bytes σε μέγεθος. Οι επεξεργαστές έχουν ειδικές οδηγίες για την αναζήτηση μέσα από μεγάλα μπλοκ bytes στη μνήμη. Αυτό είναι πολύ βολικό για λειτουργίες κειμένου.
Υπάρχει επίσης ένας γενικός τύπος μεταβλητής, ο οποίος χρησιμοποιείται συχνά σε γλώσσες δέσμης ενεργειών.
- Παραλαγή - Αυτό μπορεί να κρατήσει οποιοδήποτε τύπο, αλλά είναι πιο αργή στη χρήση.
Παράδειγμα τύπων δεδομένων
- Συστοιχίες τύπου - ενιαία διάσταση όπως συρτάρια σε ένα ντουλάπι, δισδιάστατα όπως κουτιά διαλογής ταχυδρομείου ή τρισδιάστατα όπως ένα σωρό από κιβώτια μπύρας. Μπορεί να υπάρχει οποιοσδήποτε αριθμός διαστάσεων, μέχρι τα όρια του μεταγλωττιστή.
- Enums που είναι ένα περιορισμένο υποσύνολο ακεραίων. Διαβάστε σχετικά αυτό που είναι ένα enum είναι.
- Τα Structs είναι μια σύνθετη μεταβλητή όπου πολλές μεταβλητές συγκεντρώνονται μαζί σε μία μεγάλη μεταβλητή.
- Τα ρεύματα παρέχουν έναν τρόπο διαχείρισης των αρχείων. Είναι μια μορφή α σειρά.
- Αντικείμενα, είναι σαν δομές αλλά με πολύ πιο εξελιγμένο χειρισμό δεδομένων.
Πού αποθηκεύονται οι μεταβλητές;
Στη μνήμη αλλά με διαφορετικούς τρόπους, ανάλογα με τον τρόπο χρήσης τους.
- Παγκόσμια. Όλα τα μέρη του προγράμματος μπορούν να έχουν πρόσβαση και να αλλάξουν την τιμή. Αυτό συμβαίνει με παλαιότερες γλώσσες όπως το Basic και το Fortran που χρησιμοποιούνται για τη διαχείριση δεδομένων και δεν θεωρείται καλό. Οι σύγχρονες γλώσσες τείνουν να αποθαρρύνουν την παγκόσμια αποθήκευση, αν και είναι ακόμα δυνατή.
- Στο σωρό. Αυτό είναι το όνομα της κύριας περιοχής που χρησιμοποιείται. Σε C και C ++, η πρόσβαση σε αυτό γίνεται μέσω δείκτης μεταβλητές.
- Στο Σωρός. Η στοίβα είναι ένα μπλοκ μνήμης που χρησιμοποιείται για την αποθήκευση Παράμετροι μεταβιβάζονται σε λειτουργίες και μεταβλητές που υπάρχουν τοπικές σε λειτουργίες.
συμπέρασμα
Οι μεταβλητές είναι ουσιώδεις για τον διαδικαστικό προγραμματισμό, αλλά είναι σημαντικό να μην παραγκωνίσουμε τα υποκείμενα εφαρμογή εκτός αν κάνετε προγράμματα προγραμματισμού ή γραφής εφαρμογών που πρέπει να λειτουργούν σε ένα μικρό ποσό ΕΜΒΟΛΟ.
Οι κανόνες μας σχετικά με τις μεταβλητές:
- Εκτός αν είστε σφιχτοί στο κριάρι ή έχετε μεγάλες συστοιχίες, κολλήσει με ints αντί του ψηφιόλεξη (8 bits) ή σύντομο int (16 bit). Ειδικά στις CPU 32 Bit, υπάρχει πρόσθετη ποινή καθυστέρησης στην πρόσβαση σε λιγότερο από 32 bit.
- Χρήση πλωτήρες αντί διπλασιάζει εκτός αν χρειάζεστε την ακρίβεια.
- Αποφύγετε τις παραλλαγές εκτός αν είναι πραγματικά απαραίτητο. Είναι πιο αργά.