Χρησιμοποίηση των μεταβλητών
Στο γ, μια μεταβλητή πρέπει να δηλωθεί προτού να μπορέσει να χρησιμοποιηθεί. Οι μεταβλητές μπορούν να δηλωθούν στην έναρξη οποιουδήποτε φραγμού του κώδικα, αλλά οι περισσότερες βρίσκονται στην έναρξη κάθε λειτουργίας. Οι περισσότερες τοπικές μεταβλητές δημιουργούνται όταν καλείται η λειτουργία, και καταστρέφονται στην επιστροφή από εκείνη την λειτουργία.
Για να χρησιμοποιεί τις μεταβλητές στα προγράμματα γ σας, πρέπει να ξέρετε τους ακόλουθους κανόνες κατά τη δόσιμο του ονόματος στις μεταβλητές στο γ:
- Το όνομα μπορεί να περιέχει τα γράμματα, τα ψηφία, και το χαρακτήρα κάτω παυλών (_).
- Ο πρώτος χαρακτήρας του ονόματος πρέπει να είναι ένα γράμμα. Η κάτω παύλα είναι επίσης νομικός πρώτος χαρακτήρας, αλλά η χρήση της δεν συστήνεται.
- Το γ είναι διακρίνον κεφαλαία και μικρά επομένως το μεταβλητό όνομα num είναι διαφορετικό από Num.
- Οι λέξεις κλειδιά γ δεν μπορούν να χρησιμοποιηθούν ως μεταβλητά ονόματα. Μια λέξη κλειδί είναι μια λέξη που είναι μέρος της γλώσσας γ.
Ο ακόλουθος κατάλογος περιέχει μερικά παραδείγματα των νομικών και παράνομων μεταβλητών ονομάτων γ:
Μεταβλητό όνομα |
Νομικός ή όχι |
Num |
Νομικός |
Ttpt2_t2p |
Νομικός |
Tt PT |
Παράνομος: Το διάστημα δεν επιτρέπεται |
_ 1990_tax |
Νομικός αλλά ενθαρρυνόμενος |
Jack_phone # |
Παράνομος: Περιέχει τον παράνομο χαρακτήρα # |
Περίπτωση |
Παράνομος: Είναι λέξη κλειδί εναλλασσόμενου ρεύματος |
1book |
Παράνομος: Ο πρώτος χαρακτήρας είναι ένα ψηφίο |
Το πρώτο νέο πράγμα που ξεχωρίζει είναι η πρώτη γραμμή του σώματος main():
int num = 10;
Αυτή η γραμμή καθορίζει μια μεταβλητή που ονομάζεται "num" του τύπου INT και την μονογράφει με την αξία 10. Αυτό επίσης να έχει γραφτεί όπως:
int num; /* καθορίστε η μεταβλητή 'num' */
/* και μετά από όλους τους μεταβλητούς ορισμούς: */
num = 10; /* ορίζει την αξία 10 στη μεταβλητή 'num' */
Οι μεταβλητές μπορούν να καθοριστούν στην έναρξη ενός φραγμού (μεταξύ των στηριγμάτων {kaj }), συνήθως αυτό είναι στην έναρξη ενός σώματος λειτουργίας, αλλά μπορεί επίσης να είναι στην έναρξη ενός άλλου τύπου φραγμού.
Μεταβλητές που καθορίζονται στην αρχή μιας προεπιλογής φραγμών στη "αυτόματη" θέση. Αυτό σημαίνει ότι υπάρχουν μόνο κατά τη διάρκεια της εκτέλεσης του φραγμού. Όταν η εκτέλεση λειτουργίας αρχίζει, οι μεταβλητές θα δημιουργηθούν αλλά το περιεχόμενό τους θα είναι απροσδιόριστο. Όταν η λειτουργία επιστρέφει, οι μεταβλητές θα καταστραφούν. Ο καθορισμός θα μπορούσε επίσης να έχει γραφτεί όπως:
auto int num = 10;
Δεδομένου ότι ο καθορισμός με ή χωρίς την αυτόματη λέξη κλειδί είναι απολύτως ισοδύναμος, η αυτόματη λέξη κλειδί είναι προφανώς μάλλον περιττή.
Εντούτοις, μερικές φορές αυτό δεν είναι αυτό που θέλετε. Υποθέστε ότι θέλετε μια λειτουργία για να κρατήσετε την αρίθμηση πόσων φορών καλείται. Εάν η μεταβλητή θα καταστρεφόταν κάθε φορά που επιστρέφει η λειτουργία, αυτό δεν θα ήταν δυνατό.
Επομένως είναι δυνατό να δοθεί η μεταβλητή τι καλείται στατική διάρκεια, το οποίο σημαίνει ότι θα μείνει άθικτη κατά τη διάρκεια ολόκληρης της εκτέλεσης του προγράμματος. Παραδείγματος χάριν:
static int num = 10;
Αυτό μονογράφει το μεταβλητό num σε 10 στην αρχή της εκτέλεσης προγράμματος. Από έπειτα στην αξία θα παραμείνει άθικτος η μεταβλητή δεν θα είναι re-initialized εάν η λειτουργία καλείται πολλαπλάσιοι χρόνοι.
Μερικές φορές δεν είναι ικανοποιητικό ότι η μεταβλητή θα είναι προσιτή από μια λειτουργία μόνο ή να μην είναι κατάλληλο να περαστεί η αξία μέσω μιας παραμέτρου σε όλες τις άλλες λειτουργίες που την χρειάζονται.
|