>> [Παίζει μουσική]
ΟΜΙΛΗΤΗΣ: Εντάξει.
Ας μιλήσουμε για ένα άλλο πράγμα που είναι το είδος των μοναδικών σε C,
η οποία αποτελεί τύπους δεδομένων και μεταβλητές.
Όταν λέω μοναδική σε C, εγώ πραγματικά σημαίνει μόνο στο πλαίσιο του,
αν ήσουν ένας προγραμματιστής για ένα πραγματικά μεγάλο χρονικό διάστημα,
δεν έχετε πιθανώς συνεργάστηκε με τους τύπους δεδομένων
αν έχετε χρησιμοποιήσει σύγχρονα γλώσσες προγραμματισμού.
Σύγχρονες γλώσσες, όπως PHP και JavaScript,
η οποία επίσης θα δείτε ένα μικρό αργότερα, κατά τη διάρκεια,
δεν χρειάζεται πραγματικά να καθορίσετε ο τύπος δεδομένων μιας μεταβλητής
όταν το χρησιμοποιείτε.
>> Απλά να το δηλώσει και να αρχίσετε να το χρησιμοποιείτε.
Αν είναι ένας ακέραιος, το ξέρετε ότι είναι ένας ακέραιος.
Αν είναι ένας χαρακτήρας, είναι ξέρει ότι είναι ένας χαρακτήρας.
Εάν είναι μια λέξη, γνωρίζει είναι ένα string, το λεγόμενο.
>> Αλλά σε C, η οποία είναι μια ηλικιωμένους γλώσσα, χρειαζόμαστε
να καθορίσει τα στοιχεία το είδος της κάθε μεταβλητής
ότι δημιουργούμε την πρώτη φορά ότι θα χρησιμοποιήσετε αυτήν τη μεταβλητή.
Έτσι C έρχεται με μερικά ενσωματωμένη τύπους δεδομένων.
Και θα εξοικειωθούμε με ορισμένες από αυτές.
Και στη συνέχεια, μετά θα μιλήσουμε επίσης λίγο για μερικά από τα είδη δεδομένων
ότι έχουμε γράψει για εσάς, ώστε να μπορείτε να τα χρησιμοποιήσετε σε CS50.
>> Το πρώτο είναι int.
Ο τύπος δεδομένων int χρησιμοποιείται για μεταβλητές ότι θα αποθηκεύουν ακέραιες τιμές.
Έτσι 1, 2, 3, αρνητική 1, 2, 3, και ούτω καθεξής.
Ακέραιοι, το οποίο είναι κάτι που θα πρέπει να έχετε κατά νου για το κουίζ,
καταλαμβάνουν πάντα τέσσερα bytes της μνήμης, η οποία είναι 32 bits.
Υπάρχουν οκτώ bits σε ένα byte.
>> Έτσι, αυτό σημαίνει ότι το φάσμα των εκτιμά ότι ένας ακέραιος αριθμός μπορεί να αποθηκεύσει
περιορίζεται από ό, τι μπορεί να χωρέσει μέσα 32 bits αξίας των πληροφοριών.
Τώρα, όπως αποδεικνύεται, ήταν εδώ και πολύ καιρό αποφάσισε
ότι θα χωρίσουν ότι η γκάμα των 32 bits
σε αρνητικών ακεραίων και θετικών ακεραίων,
καθένα να πάρει το μισό της σειράς.
Έτσι, το εύρος των τιμών που αντιπροσωπεύουμε με μια σειρά από αρνητικές ακέραιες 2
στην 31η δύναμη 2 έως η 31η δύναμη μείον 1,
προκαλέσει, επίσης, θα πρέπει να έχετε ένα μέρος για 0.
>> Έτσι, ουσιαστικά οι μισές από τις πιθανές τιμές που μπορούν να χωρέσουν σε έναν int είναι αρνητική,
και οι μισοί είναι θετικές.
Και σχεδόν εδώ, πρόκειται για αρνητικό 2000000000 σε περίπου 2 δισεκατομμύρια θετική.
Δώσει ή να πάρει μερικές εκατοντάδες εκατομμύρια ευρώ.
Έτσι, αυτό είναι ό, τι μπορεί να χωρέσει σε μια ακέραια μεταβλητή.
Τώρα έχουμε και κάτι ονομάζεται ένα ανυπόγραφο ακέραιος.
Τώρα ανυπόγραφο ints δεν είναι ένα ξεχωριστό είδος της μεταβλητής.
Μάλλον, είναι ανυπόγραφο ό, τι λέγεται ένα προκριματικό.
Επίσης, τροποποιεί τα δεδομένα τύπο του ακεραίου ελαφρώς.
>> Και σε αυτή την περίπτωση, τι ανυπόγραφο means-- και μπορείτε επίσης να
χρησιμοποιούν ανυπόγραφα άλλους τύπους δεδομένων, ακέραιος δεν είναι η μόνη.
Αυτό που κάνει ουσιαστικά είναι δίκλινα η θετική περιοχή τιμών
ότι ένας ακέραιος αριθμός μπορεί να πάρει σε η δαπάνη του δεν επιτρέπει πλέον
μπορείτε να πάρετε σε αρνητικές τιμές.
Έτσι, εάν έχετε τους αριθμούς που γνωρίζετε θα πάρει υψηλότερη από ό, τι τα 2 δισεκατομμύρια, αλλά μικρότερη
από 4 δισεκατομμύρια, για example-- η οποία είναι 2 έως την 32η power--
ίσως να θέλετε να χρησιμοποιήσετε ένα ανυπόγραφο int αν
γνωρίζουν την αξία σας δεν θα είναι ποτέ αρνητική.
>> Θα πρέπει περιστασιακά που χρησιμοποιούνται για ανυπόγραφα μεταβλητές
σε CS50, η οποία είναι ο λόγος που το αναφέρω εδώ.
Αλλά και πάλι, το εύρος των τιμών που εσείς μπορεί να αντιπροσωπεύουν με ένα ανυπόγραφο ακέραιο
ως προς το t τακτική ακέραιος, είναι 0 για 2 στη δύναμη 32η μείον 1,
ή περίπου 0 έως 4000000000.
Έτσι, έχετε ουσιαστικά διπλασιαστεί η θετική εύρος που μπορεί να χωρέσει,
αλλά έχετε δώσει όλα οι αρνητικές τιμές.
>> Τώρα, ως ένα μέρος, ανυπόγραφο δεν είναι το μόνο προκριματικό
ότι θα μπορούσαμε να δούμε για τύπους μεταβλητών δεδομένων.
Υπάρχουν επίσης πράγματα που ονομάζεται βραχυπρόθεσμα και μακροπρόθεσμα και const.
Σταθ θα δούμε μια μικρή Λίγο αργότερα στο μάθημα.
Βραχυπρόθεσμα και μακροπρόθεσμα, πιθανότατα δεν θα.
>> Αλλά απλά να ξέρετε ότι υπάρχουν είναι άλλες προκριματικά.
Ανυπόγραφο, δεν είναι η μόνη.
Αλλά αυτό είναι το μόνο που είμαστε πρόκειται να μιλήσουμε για τώρα.
Έτσι, όλα τα δικαιώματα.
Έτσι έχουμε καλύπτονται ακέραιοι.
Ποιο είναι το επόμενο;
>> Χαρακτήρες.
Έτσι χαρακτήρες που χρησιμοποιούνται για μεταβλητές ότι θα αποθηκεύουν και μόνο χαρακτήρες.
Χαρ είναι μικρή για τον χαρακτήρα.
Και μερικές φορές μπορείτε να ακούσετε άνθρωποι προφέρουν το αυτοκίνητο.
>> Έτσι, οι χαρακτήρες καταλαμβάνουν πάντα ένα byte της μνήμης, η οποία είναι μόλις 8 bits.
Έτσι, αυτό σημαίνει ότι μπορούν να χωρέσουν μόνο τιμές στο φάσμα αρνητικών 2
για την έβδομη δύναμη, είτε αρνητική 128, για 2 στην 7η δύναμη μείον 1, ή 127.
>> Χάρη σε ASCII, ήταν Πριν από λίγο καιρό αποφάσισε έναν τρόπο
να χαρτογραφήσουν αυτές τις θετικές αριθμούς από 0-127 σε διάφορους χαρακτήρες
ότι όλα υπάρχουν στο πληκτρολόγιο μας.
Έτσι, όπως θα δούμε αργότερα στην Η πορεία, και πιθανότατα θα σας
έρχονται να απομνημονεύσουν σε μερικά σημείο, κεφάλαιο Α, για example--
η πρωτεύουσα χαρακτήρα A-- χάρτες με τον αριθμό 65.
Και ο λόγος γι 'αυτό είναι γιατί αυτό είναι που είναι
έχουν ανατεθεί από το πρότυπο ASCII.
>> Πεζά Α είναι 97.
Ο χαρακτήρας 0 για το πότε θα στην πραγματικότητα να πληκτρολογήσετε το χαρακτήρα, δεν
που αντιπροσωπεύει τον αριθμό μηδέν, είναι 48.
Θα μάθετε μερικά από αυτά as you go.
Και σίγουρα θα έρθει να χρειαστεί τους λίγο αργότερα σε CS50.
>> Η επόμενη μεγάλη τύπος δεδομένων είναι αριθμοί κινητής υποδιαστολής.
Έτσι αριθμούς κινητής υποδιαστολής είναι επίσης γνωστή ως πραγματικών αριθμών.
Είναι βασικά αριθμών που έχουν ένα δεκαδικό σημείο σε αυτές.
Τιμές κινητής υποδιαστολής όπως οι ακέραιοι είναι επίσης
περιέχεται εντός 4 bytes μνήμης.
Τώρα δεν υπάρχει διάγραμμα εδώ.
Δεν υπάρχει καμία γραμμή των αριθμών, επειδή περιγραφή του εύρους του πλωτήρα
δεν είναι ακριβώς σαφές και διαισθητική.
>> Αρκεί να λέτε έχουν 32 bits για να εργαστεί με.
Και αν έχετε έναν αριθμό όπως π, η οποία έχει
ένα ακέραιο μέρος 3, και ακολούθως κυμαινόμενο Σημείο μέρος, ή δεκαδικό μέρος 0,14159,
και ούτω καθεξής, θα πρέπει να είναι είναι σε θέση να εκπροσωπεί όλους it--
το ακέραιο μέρος και το δεκαδικό μέρος.
>> Λοιπόν, τι νομίζετε ότι μπορεί να σημαίνει αυτό;
Ένα πράγμα είναι ότι εάν το δεκαδικό μέρος γίνεται όλο και περισσότερο,
αν έχω ένα πολύ μεγάλο ακέραιο μέρος, εγώ δεν θα μπορούσε
να είναι σε θέση να είναι τόσο ακριβής με το δεκαδικό μέρος.
Και αυτό είναι πραγματικά η τον περιορισμό ενός πλωτήρα.
>> Άρματα κάποιο πρόβλημα ακρίβειας.
Έχουμε μόνο 32 bits για να συνεργαστεί με, έτσι μπορούμε μόνο
να είναι τόσο ακριβής με δεκαδικό μέρος μας.
Δεν μπορούμε να έχουμε κατ 'ανάγκη δεκαδικό μέρος ακριβής σε 100 ή 200 ψηφία,
επειδή έχουμε μόνο 32 bits για να εργαστεί με.
Έτσι, αυτό είναι ένας περιορισμός του πλωτήρα.
>> Τώρα, ευτυχώς, υπάρχει Ένας άλλος τύπος δεδομένων που ονομάζεται
διπλό, το οποίο είναι κάπως ασχολείται με το πρόβλημα αυτό.
Δίκλινα, όπως πλωτήρες, χρησιμοποιούνται επίσης για να αποθηκεύουν πραγματικούς αριθμούς, ή κινητής υποδιαστολής
αξιών.
Η διαφορά είναι ότι η δίκλινα είναι διπλής ακρίβειας.
Μπορούν να χωρέσουν 64 bits της δεδομένα, ή οκτώ bytes.
Τι σημαίνει αυτό?
Λοιπόν, αυτό σημαίνει ότι μπορεί να είναι πολύ πιο ακριβής με την υποδιαστολή.
Αντί να έχουμε pi έως επτά θέσεις ίσως, με ένα άρμα,
μπορούμε ίσως να έχει έως 30 ψηφία.
Αν αυτό είναι σημαντικό, ίσως να θέλετε να χρησιμοποιήσετε ένα διπλό αντί για ένα πλωτήρα.
Βασικά, αν είστε που εργάζονται σε τίποτα όταν
έχουν ένα πραγματικά μεγάλο δεκαδικό ψηφίο και πολλά ακριβείας είναι σημαντική,
πιθανόν να θέλετε να χρησιμοποιήσετε διπλή overfloat.
Τώρα για το μεγαλύτερο μέρος της εργασίας σας σε CS50, ένας πλωτήρας πρέπει να αρκεί.
Αλλά ξέρω ότι υπάρχουν διπλασιάζει ως ένα τρόπος για να ασχοληθεί κάπως με την ακρίβεια
πρόβλημα, δίνοντάς σας μια έξτρα 32 bits για να συνεργαστεί με τους αριθμούς σας.
>> Τώρα αυτό δεν είναι ένας τύπος δεδομένων.
Αυτό είναι ένα είδος.
Και αυτό λέγεται άκυρη.
Και μιλάω γι 'αυτό εδώ επειδή έχουμε πιθανώς
δει μερικές φορές ήδη σε CS50.
Και ίσως να αναρωτιέστε τι είναι όλο περίπου.
>> Έτσι κενό είναι ένας τύπος.
Ο χώρος αυτός υπάρχει.
Αλλά δεν είναι ένας τύπος δεδομένων.
>> Δεν μπορούμε να δημιουργήσουμε μια μεταβλητή τύπου άκυρη και να εκχωρήσετε μια τιμή σε αυτό.
Αλλά λειτουργιών, για παράδειγμα, μπορεί να έχει ένα κενό τύπο επιστροφής.
Βασικά, αν δείτε μια λειτουργία ότι έχει ένα κενό τύπο επιστροφής,
αυτό σημαίνει ότι δεν επιστρέφει μια τιμή.
Μπορείτε να σκεφτείτε ένα κοινό συνάρτηση που έχουμε χρησιμοποιήσει μέχρι τώρα
σε CS50 που δεν επιστρέφει τιμή;
>> Printf είναι ένα.
Printf στην πραγματικότητα δεν επιστρέψει τίποτα για σένα.
Εκτυπώνει κάτι για να το οθόνη, και είναι βασικά
μια παρενέργεια του τι κάνει printf.
Αλλά δεν σας δώσει μια τιμή πίσω.
Δεν συλλάβει το αποτέλεσμα και την αποθήκευση με κάποιο μεταβλητή για να το χρησιμοποιήσει αργότερα.
Τυπώνει μόνο κάτι για να η οθόνη και είστε έτοιμοι.
>> Έτσι μπορούμε να πούμε ότι printf είναι μια συνάρτηση κενό.
Επιστρέφει τίποτα.
>> Ο κατάλογος περίμετρο ενός λειτουργία μπορεί επίσης να είναι άκυρη.
Και έχετε δει επίσης ότι αρκετά σε CS50 πολύ.
Int main άκυρη.
Μήπως αυτό χτυπάει ένα καμπανάκι;
Ουσιαστικά αυτό σημαίνει ότι κύριος δεν λαμβάνει καμία παραμέτρους.
Δεν υπάρχει επιχείρημα ότι να περάσει στην κύρια.
Τώρα αργότερα θα δούμε ότι υπάρχει ένας τρόπος για να περάσει επιχειρήματα σε γενικές γραμμές,
αλλά μέχρι στιγμής αυτό που έχουμε δει είναι int main άκυρη.
Κύρια απλά δεν λαμβάνει κανένα επιχείρημα.
Και έτσι έχουμε διευκρινίσει ότι λέγοντας άκυρη.
Είμαστε ακριβώς είναι πολύ σαφής σχετικά με το γεγονός
ότι δεν λαμβάνει κανένα επιχείρημα.
>> Έτσι, για τώρα, αρκεί να δηλαδή το κενό βασικά
Πρέπει απλά να χρησιμεύσει ως ένα σύμβολο κράτησης θέσης για σας, όπως σκεφτόμαστε ως τίποτα.
Δεν είναι πραγματικά κάνει τίποτα.
Δεν υπάρχει τιμή επιστροφής εδώ.
Δεν υπάρχει καμία παραμέτρους εδώ.
Είναι άκυρη.
Είναι λίγο πιο περίπλοκο από αυτό.
Αλλά αυτό πρέπει να αρκεί για το καλύτερο μέρος του μαθήματος.
Και ελπίζουμε ότι τώρα έχετε μια μικρή λίγο περισσότερο από μια ιδέα για το τι είναι άκυρη.
>> Έτσι, αυτές είναι οι πέντε τύποι εσείς θα συνάντηση που είναι ενσωματωμένες σε C.
Αλλά σε CS50 έχουμε επίσης μια βιβλιοθήκη.
CS50.h, τα οποία μπορείτε να συμπεριλάβετε.
Και το οποίο θα σας παρέχει με δύο επιπλέον τύπους
ότι θα πρέπει πιθανώς να είναι σε θέση για χρήση σε αναθέσεις σας,
ή απλά να εργάζονται σε γενικές γραμμές προγραμματισμού.
>> Η πρώτη από αυτές είναι bool.
Έτσι, το Boolean τύπου δεδομένων, bool, χρησιμοποιείται για μεταβλητές
ότι θα αποθηκεύει μια τιμή Boolean.
Αν έχετε ακούσει ποτέ ο όρος αυτός πριν,
Ίσως γνωρίζετε ότι ένα Boolean αξία είναι ικανό μόνο
κρατώντας δύο διαφορετικές διακριτές τιμές.
Αληθινό και το ψεύτικο.
Τώρα αυτό φαίνεται αρκετά θεμελιώδους, σωστά;
Είναι το είδος του μια έκπληξη ότι αυτή η Δεν υπάρχει σε C, όπως είναι built-in.
Και σε πολλές σύγχρονες γλώσσες, Φυσικά, Booleans
είναι ένα πρότυπο προεπιλεγμένο τύπο δεδομένων.
Αλλά σε C, δεν είναι στην πραγματικότητα.
Αλλά το έχουμε δημιουργήσει για εσάς.
Έτσι, αν ποτέ χρειαστεί να δημιουργήσετε μια μεταβλητή της οποίας ο τύπος είναι bool,
απλά φροντίστε να #include CS50.h κατά την έναρξη του προγράμματός σας,
και θα είστε σε θέση να δημιουργήσουν μεταβλητές του τύπου bool.
>> Εάν ξεχάσετε να #include CS50.h, και αρχίσετε να χρησιμοποιείτε μεταβλητές Boolean τύπου,
μπορείτε να αντιμετωπίσετε κάποια προβλήματα όταν είστε κατάρτιση του προγράμματός σας.
Έτσι ακριβώς είναι στην επιφυλακή για αυτό.
Και ίσως μπορείτε να διορθώσετε μόνο το προβλήματα με την λίρα, συμπεριλαμβανομένων CS50.h.
>> Ο άλλος σημαντικός τύπος δεδομένα που προβλέπουν για σας στη βιβλιοθήκη CS50
είναι συμβολοσειρά.
Έτσι τι είναι ένα string;
Χορδές είναι πραγματικά μόνο λόγια.
Είναι συλλογές χαρακτήρων.
Είναι τα λόγια.
Είναι προτάσεις.
Είναι παραγράφους.
Μπορεί να είναι ολόκληρα βιβλία, ακόμα.
>> Πολύ μικρές μέχρι μεγάλες σειρά χαρακτήρων.
Εάν πρέπει να χρησιμοποιήσετε χορδές, για παράδειγμα, να αποθηκεύσει μια λέξη,
απλά φροντίστε να περιλαμβάνουν CS50.h κατά την έναρξη του προγράμματός σας
ώστε να μπορείτε να χρησιμοποιήσετε τον τύπο συμβολοσειράς.
Και τότε μπορείτε να δημιουργήσετε μεταβλητές οποίου ο τύπος δεδομένων συμβολοσειράς.
Τώρα, αργότερα, κατά τη διάρκεια, επίσης θα δούμε ότι αυτό είναι
όχι το σύνολο της ιστορίας, είτε.
Θα αντιμετωπίσετε τα πράγματα που ονομάζονται δομές,
τα οποία σας επιτρέπουν να ομαδοποιήσετε τι μπορεί να είναι ένας ακέραιος και ένα κορδόνι σε μία μονάδα.
Και μπορούμε να χρησιμοποιήσουμε για μερικές σκοπό, το οποίο θα μπορούσε
να έρθει σε βολικό αργότερα στο μάθημα.
>> Και θα μάθετε επίσης για συγκεκριμένες κατηγορίες,
που σας επιτρέπουν να δημιουργήσετε το δικό σας τύπους δεδομένων.
Δεν χρειάζεται να ανησυχείτε γι 'αυτό προς το παρόν.
Αλλά απλά να ξέρετε ότι αυτό είναι κάτι στον ορίζοντα,
ότι υπάρχει πολύ περισσότερο σε αυτό το σύνολο του Τύπος πράγμα από ό, τι σου λέω μόνο
τώρα.
Έτσι τώρα που μάθαμε λίγο για τα βασικά δεδομένα
τύποι και οι τύποι δεδομένων CS50, ας μιλήσουμε για το πώς να συνεργαστεί με μεταβλητές
και τις δημιουργήσετε με αυτά τύπους δεδομένων στα προγράμματά μας.
Αν θέλετε να δημιουργήσετε μια μεταβλητή, το μόνο που χρειάζεται να κάνετε είναι δύο πράγματα.
>> Κατ 'αρχάς, θα πρέπει να δώσετε έναν τύπο.
Το δεύτερο πράγμα που χρειάζεστε να κάνουμε είναι να δώσουμε ένα όνομα.
Μόλις γίνει αυτό και χαστούκισε ένα ερωτηματικό στο τέλος της γραμμής,
έχετε δημιουργήσει μια μεταβλητή.
>> Έτσι, εδώ είναι δύο παραδείγματα.
Int αριθμό? char επιστολή ;.
Τι έχω κάνει εδώ;
Έχω δημιουργήσει δύο μεταβλητές.
>> Η πρώτη, η μεταβλητή του όνομα είναι αριθμός.
Και ο αριθμός είναι σε θέση να διατηρεί ακέραια πληκτρολογήστε τις τιμές, επειδή ο τύπος του είναι int.
Επιστολή είναι μια άλλη μεταβλητή ότι μπορεί να κρατήσει χαρακτήρες
επειδή ο τύπος δεδομένων είναι char.
>> Αρκετά απλό, έτσι δεν είναι;
Αν βρεθείτε σε μια κατάσταση όπου
θα πρέπει να δημιουργήσετε πολλαπλές μεταβλητές του ίδιου τύπου,
το μόνο που χρειάζεται να καθορίσετε το όνομα του τύπου μία φορά.
Στη συνέχεια λίστα εξίσου πολλές μεταβλητές αυτού του τύπου που χρειάζεστε.
>> Γι 'αυτό και θα μπορούσε, για παράδειγμα, εδώ σε αυτή την τρίτη γραμμή του κώδικα,
λένε ύψος int ;, νέα γραμμή.
Int πλάτος ;.
Και αυτό θα μπορούσε να λειτουργήσει πάρα πολύ.
Θα ήθελα ακόμη να ονομάζεται δύο μεταβλητές ύψος και το πλάτος, καθένα από τα οποία
είναι ένας ακέραιος.
Αλλά είμαι επιτρέπεται να, τα πράγματα για την σύνταξη C, εδραίωση της σε μια ενιαία γραμμή.
Int ύψος, πλάτος? Είναι το ίδιο πράγμα.
Έχω δημιουργήσει δύο μεταβλητές, μία που ονομάζεται ύψος ένα ονομάζεται πλάτος, δύο εκ των οποίων
Δεν μπορεί να χωρέσει ακέραιες τιμές τύπου.
>> Ομοίως εδώ, μπορώ να δημιουργήσει τρεις τιμές κινητής υποδιαστολής ταυτόχρονα.
Ίσως μπορώ να δημιουργήσετε μια μεταβλητή που ονομάζεται τετραγωνική ρίζα του 2--
η οποία κατά πάσα πιθανότητα τελικά θα κρατήστε πατημένο το πλωτό point--
ότι η εκπροσώπηση της πλατείας ρίζα του 2-- τετραγωνική ρίζα του 3, και πίν.
Θα μπορούσα να είχα κάνει αυτό σε τρεις ξεχωριστές γραμμές.
Float, τετραγωνική ρίζα 2? Float τετραγωνική ρίζα 3? float pi? και ότι θα μπορούσε να λειτουργήσει πάρα πολύ.
>> Αλλά και πάλι, δεν μπορώ να εδραιώσει μόνο αυτό σε μια ενιαία γραμμή κώδικα.
Κάνει τα πράγματα λίγο μικρότερη, όχι ως clunky.
>> Τώρα γενικά, είναι καλό σχέδιο μόνο δηλώσουμε μια μεταβλητή όταν το χρειάζεστε.
Και θα μιλήσουμε λίγο λίγο περισσότερο γι 'αυτό
αργότερα, κατά τη διάρκεια όταν συζητάμε για το πεδίο εφαρμογής.
Έτσι, δεν χρειάζεται απαραίτητα να τη δημιουργία όλων των μεταβλητών σας
κατά την έναρξη του προγράμματος, το οποίο Μερικοί άνθρωποι μπορεί να έχουν κάνει στο παρελθόν,
ή ήταν σίγουρα μια πολύ συχνή κωδικοποίησης πρακτική πριν από πολλά χρόνια
όταν εργάζεστε με C. Ίσως μόνο θέλετε να δημιουργήσετε μια μεταβλητή δίκιο όταν
χρειάζεστε.
Εντάξει.
Έτσι, δημιουργήσαμε μεταβλητές.
Πώς μπορούμε να τα χρησιμοποιούμε;
Μετά δηλώνουμε μεταβλητή, δεν χρειαζόμαστε
για να καθορίσετε τον τύπο δεδομένων της εν λόγω μεταβλητής πια.
Στην πραγματικότητα, αν το κάνετε αυτό, ίσως καταλήξετε με κάποια περίεργα συνέπειες
ότι θα το είδος της αποσιωπήσει για τώρα.
Αλλά αρκεί να πούμε, Τα παράξενα πράγματα συμβαίνουν
να αρχίσει να συμβαίνει αν κατά λάθος εκ νέου να δηλώσει μεταβλητές με το ίδιο όνομα
ξανά και ξανά.
>> Εδώ, λοιπόν, έχουμε τέσσερις γραμμές κώδικα.
Και έχω ένα ζευγάρι των σχόλια εκεί ακριβώς που υποδεικνύει
τι συμβαίνει στην κάθε γραμμή ακριβώς για να βοηθήσει
μπορείτε να βρίσκονται σε ό, τι συμβαίνει.
Έτσι int αριθμό ;.
Είδατε ότι στο παρελθόν.
Αυτή είναι μια δήλωση μεταβλητών.
>> Έχω δημιουργήσει πλέον μια μεταβλητή καλούμενος αριθμός που είναι
μπορεί να χωρέσει ακέραιες τιμές τύπου.
Έχω δήλωσε.
>> Η επόμενη γραμμή είμαι ανάθεση μια τιμή στον αριθμό.
Αριθμός ισούται με 17.
Τι συμβαίνει εκεί;
Βάζω τον αριθμό 17 εσωτερικό του εν λόγω μεταβλητή.
>> Έτσι, αν ποτέ στη συνέχεια να εκτυπώσετε ό, τι τα περιεχόμενα του αριθμού είναι αργότερα,
θα μου πει ότι είναι 17.
Έτσι έχω δηλώσει μια μεταβλητή, και, στη συνέχεια, έχω ανατεθεί.
>> Μπορούμε να επαναλάβουμε τη διαδικασία και πάλι με char επιστολή ;.
Αυτή είναι μια δήλωση.
Επιστολή ισούται κεφαλαίου Η Αυτό είναι μια ανάθεση.
Αρκετά απλό, πάρα πολύ.
>> Τώρα αυτή η διαδικασία μπορεί να φαίνεται είδους ανόητο.
Γιατί το κάνουμε αυτό σε δύο γραμμές κώδικα;
Υπάρχει καλύτερος τρόπος να το κάνουμε εκεί;
Στην πραγματικότητα, δεν υπάρχει.
Μερικές φορές μπορεί να δείτε Αυτό ονομάζεται αρχικοποίηση.
Είναι όταν δηλώνετε μια μεταβλητή και να εκχωρήσετε μια τιμή την ίδια στιγμή.
Αυτό είναι πραγματικά ένα πολύ πράγμα που μπορεί να κάνει.
Όταν δημιουργείτε μια μεταβλητή, που συνήθως θέλουν να έχουν κάποια βασική τιμή.
Ακόμα κι αν είναι 0 ή κάτι τέτοιο.
Μπορείτε απλά να σας δώσει μια τιμή.
>> Μπορείτε να προετοιμάσει μια μεταβλητή.
Int αριθμός ισούται με 17 είναι το ίδιο όπως Οι δύο πρώτες γραμμές κώδικα από πάνω.
Char γράμμα ισούται h είναι η ίδια με την τρίτη και τέταρτη γραμμή του κώδικα παραπάνω.
Το πιο σημαντικό όφελος εδώ όταν είμαστε δηλώνοντας και την ανάθεση
μεταβλητές είναι μετά έχουμε δήλωσε ότι, προειδοποίηση
Δεν είμαι χρησιμοποιώντας και πάλι τον τύπο δεδομένων.
Δεν λέω int αριθμό ίσο με 17 για η δεύτερη γραμμή του κώδικα, για παράδειγμα.
Απλά λέω αριθμός ισούται με 17.
>> Και πάλι, εκ νέου κήρυξη μιας μεταβλητής μετά έχετε ήδη δηλώσει ότι μπορεί να οδηγήσει
για κάποιο περίεργο αποτέλεσμα.
Έτσι απλά να είστε προσεκτικοί αυτό.
>> Είμαι ο Νταγκ Lloyd.
Και αυτό είναι CS50.