ΟΜΙΛΗΤΗΣ: Εντάξει, έτσι, δεν θα το πιστέψετε, αλλά την περασμένη εβδομάδα, τη Δευτέρα, στο Pierce, I ήταν κάτω στο υπόγειο. Ποτέ δεν πάω σε Pierce. Και εγώ δεν πρόκειται ποτέ ξανά, γιατί Άφησα τα πράγματά μου και μόνο για, όπως, πέντε λεπτά και κάποιος έκλεψε τον υπολογιστή μου και μου τηλεφώνου από το σακίδιο μου. Πράγμα που σημαίνει πήρα πίσω, και Στη συνέχεια λιγότερο από μια εβδομάδα αργότερα πήρε κλαπεί και πάλι. Και τότε πήρε γύρισε σε - Βρείτε το iPhone μου συνεχίζει να είναι άχρηστες. Γι 'αυτό και συνεχίζουν να ενθαρρύνουν να μην το χρησιμοποιούν. Αποδείχθηκε για μία φορά, και ήταν στο MIT, όπως 15 λεπτά αργότερα, και το πρόσωπο ονομάζεται αυτός ο αριθμός τηλεφώνου που έδειξε σε αρχείο καταγραφής κλήσεων AT & T μου. Γι 'αυτό και πήγε σε απευθείας σύνδεση, που ονομάζεται ότι το τηλέφωνο τον αριθμό, και πήγε κατ 'ευθείαν σε αυτό τηλεφωνητή στα ισπανικά. Και δεν έχω ακούσει για αυτό από τότε. Γι 'αυτό και έπρεπε να πάρω ένα νέο υπολογιστή και του τηλεφώνου. Το ξέρω. Ναι. Αλλά αν εσείς θέλετε να τσιπ, για να μου ταμείο του υπολογιστή μετά από αυτό, γι 'αυτό Σας έχω ζητήσει εδώ. Αστειεύομαι. Αλλά αυτό ήταν πραγματικά θλιβερή και τραυματική. Αλλά είναι όλα πίσω τώρα, και αυτός ήταν ο λόγος το p-8 που πήρε τόσο καιρό, γιατί Δεν είχα έναν υπολογιστή. Και κάποιος το έκλεψε. Και έστειλα email, ρωτώντας εάν θα σας βαθμού p-που 8. Αλλά είπαν όχι. Και ήμουν όπως, μπορώ να έχω τον υπολογιστή μου πίσω; Και μου λένε, όχι. Αστειεύομαι. OK. Αυτό είναι το τελευταίο τμήμα μας, και έχω ένα ζευγάρι - έχουμε μόνο τρεις τα πράγματα στην ημερήσια διάταξη. Εμείς πάμε για να μιλήσουμε λίγο για τον οδηγό Q. Στη συνέχεια, θα πάμε να περάσουν 15 λεπτά σε ένα δροσερό demo. Στη συνέχεια, θα πάμε να λένε όλοι αντίο ο ένας στον άλλο. Δεν χρειάζεται πραγματικά τους υπολογιστές σας ή ένα στυλό ή χαρτί για να κρατήσετε σημειώσεις, ή ακολουθήστε μαζί. Έτσι, υποθέτω, αν έχετε τον υπολογιστή σας up, τότε είστε στο Facebook. Απλά λέγοντας. Αν δεν είστε συμπληρώνοντας το Οδηγός Q, η οποία είναι η πρώτη. Ο οδηγός Q είναι ανοιχτό. Είχατε ένα μήνυμα ηλεκτρονικού ταχυδρομείου σχετικά με αυτό. Μόλις υποβληθεί όλα τα πράγματα Q κατά τη τέλος του έτους, παίρνω όλα τα Δείτε τα σχόλια του Q στις βαθμολογίες από όλους τους που επιλέγει να μου δώσει πληροφορίες. Και έτσι όταν πηγαίνετε στο Q - Δεν ξέρω αν μπορείτε να το κάνετε αυτό, Jeff, επειδή είστε φοιτητής και επέκταση. Αλλά όταν θα πάτε στο Q, αν δεν έχετε κάνει αυτό πριν, να επιλέξετε σας εκπαιδευτικών, η οποία είναι ο David Μάλαν. Πρέπει να τον κάνουμε. Και τότε μπορείτε να επιλέξετε TFs. Και μπορείτε να διαλέξετε όσες TFs όπως θέλετε. Αλλά υπάρχουν 60 από εμάς. Δεν χρειάζεται να πάρει ο καθένας. Μπορείτε να επιλέξετε μόνο εγώ, ή απλά να επιλέξετε ένα ζευγάρι άλλους ανθρώπους, αν θέλετε, να να δώσουν ανατροφοδότηση, καθώς και. Και τότε θα πάρει αποτελέσματα σε όλα αυτά διαφορετικούς άξονες, και, στη συνέχεια, μπορείτε να αφήσετε αυτούς δυνατότητα ανάδρασης. Και τότε, όπως και ένα μήνα αργότερα, Θα πάρετε όλα αυτά τα σχόλια. Και ακριβώς όπως και τα σχόλια που έχουν πάει που μου δίνετε τη διάρκεια του εξαμήνου, θα διαβάστε όλα αυτά. Και είναι πραγματικά χρήσιμη, και βοηθά Θέλω να μεγαλώνουν ως δάσκαλος και ως άτομο. Έτσι, παρακαλώ, να πάρει κάποιο χρόνο για να το κάνει. Είμαστε μόνο πρόκειται να είναι εδώ για, όπως 30 λεπτά. Έτσι, εάν θέλετε, στο τέλος της αυτό, για να πέντε λεπτά, και μόλις συμπληρώσετε το Q, διότι δεν λαμβάνει οποιαδήποτε περισσότερο χρόνο από αυτόν. Αυτό θα ήταν υπέροχο, και μπορείτε επίσης να να πάρει βαθμούς πίσω σας πιο γρήγορα, αν μπορείτε να συμπληρώσετε τη Q. Έτσι, οι περισσότεροι από εσάς έχετε κάνει αυτό πριν - ή όχι, περίπου οι μισοί από εσάς έχουν ξανακάνει αυτό. Αλλά εάν είστε ένας καινούριος, αυτό είναι τι είναι αυτό. Θα είναι το ίδιο για όλες τις τάξεις. Κάν 'το. Χρειάζονται πέντε λεπτά. Αλλά, επίσης, αν το κάνετε λίγο σοβαρά, αυτό δεν είναι το χειρότερο πράγμα στον κόσμο, γιατί σίγουρα λάβουμε σοβαρά υπόψη. Έτσι, αν με αφήσεις ένα χαμογελαστό πρόσωπο, Εγώ θα το εκτιμήσουν. Αλλά θα ήθελα να εκτιμήσουν αν μου άφησε περισσότερο από ένα χαμογελαστό πρόσωπο. Αλλά είναι στο χέρι σας. Δεν μπορώ να σας πω - ή σαν μια μεγάλη smiley πρόσωπο, με ένα κεφάλαιο D. Αυτό θα να είναι ακόμα καλύτερη. Εντάξει, αυτό είναι το μόνο που έχω για το Q. Αν έχετε οποιαδήποτε απορία, μπορείτε να ζητήσετε μένα, αλλά αρκετά αυτονόητα. Απλά, σε παρακαλώ, να τη συμπληρώσετε. Θα το εκτιμούσα πραγματικά, και αυτό σημαίνει πολλά για μένα. Εντάξει, αυτό είναι ό, τι θα πάμε να περάσουν 15 λεπτά περνάει. Πάω να σας δείξω κάποια κώδικα. Νομίζω ότι αυτό είναι πραγματικά δροσερό, και αυτό μου πήρε περισσότερο ενθουσιασμένος στην επιστήμη των υπολογιστών. Ελπίζω, λοιπόν, ότι θα κάνει το ίδια για όλους σας. Θα ανοίξει - και όλα αυτά κωδικός Θα στείλω σε σας αργότερα. Αλλά είμαστε ακριβώς πρόκειται να ανοίξει - Είμαι στο τερματικό μου - θα πάμε να ανοίξουμε αυτό το πρόγραμμα που ονομάζεται [; MySum. ?] Μπορεί ο καθένας να διαβάσετε αυτό, ή θα πρέπει να το κάνει μεγαλύτερο; Μπορεί κάποιος να μου πει τι αυτός ο κώδικας θα κάνω όταν το τρέξετε, ή ό, τι αυτό πρόγραμμα θα κάνει όταν το τρέχω; [? Avi,?] Τι νομίζεις πρόκειται να κάνουμε; Τερματισμός μάσημα. Δεν θα πρέπει να μιλήσετε με το στόμα ανοιχτό. ΚΟΙΝΟ: Έχει πάρει μια δέσμη των επιχειρήματα, βρείτε άθροισμα τους επιστρέφουν άθροισμα, και στη συνέχεια να εκτυπώσετε; Ή παίρνει σε δύο επιχειρήματα, και τότε το κάνει [δεν ακούγεται]. Και στη συνέχεια εκτυπώνει ό, τι τα αποτελέσματα είναι. ΟΜΙΛΗΤΗΣ: Κλείσιμο, πολύ κοντά. Ο καθένας θέλει να προσθέσει στο [? τι Avi?] είπε; Μήπως θα πρέπει να δώσει σε αυτό το πρόγραμμα οποιαδήποτε επιχειρήματα της γραμμής εντολών; ΚΟΙΝΟ: Όχι. ΟΜΙΛΗΤΗΣ: Όχι. Τι θα συμβεί αν δεν το δώσει οποιαδήποτε επιχειρήματα της γραμμής εντολών; Απλώς γράφω dot κάθετος MySum. ΚΟΙΝΟ: 1 συν 2 ισούται με 3. ΟΜΙΛΗΤΗΣ: 1 συν 2 ισούται με 3. Και αυτό θα το τυπώσουν αυτό έξω. Αυτό είναι ακριβώς σωστό. Θα δείτε ότι η εκτύπωση f γραμμή στο κάτω μέρος. Θα εκτυπώσετε a, b, και τότε το άθροισμα των a και b. Και υποθέτω ότι θα υποθέσουμε ότι άθροισμα λειτουργεί σωστά. Καλή υπόθεση. Εντάξει, και τι θα συμβεί αν δώσει ποιο επιχείρημα; [? Manu; ?] ΚΟΙΝΟ: Θα προσθέσει ανεξαρτήτως το πρώτο επιχείρημα είναι η b. Ή σε 2, συγγνώμη. ΟΜΙΛΗΤΗΣ: Δεξιά, 2. Ξέρει κανείς τι strtol κάνει; Είναι ουσιαστικά atoi. Atoi είναι στην πραγματικότητα ένα φανταχτερό έκδοση - ή μια απλούστερη εκδοχή της strtol. Αλλά στην πραγματικότητα χρησιμοποιεί strtol. Και βρήκα ότι έξω γιατί ήθελα κάτι σαν atoi, και στη συνέχεια, όταν δεν atoi, διάβασα εδώ κάτω. Και βρήκα "αυτή η συμπεριφορά είναι το ίδιο με το "strtol. Έτσι είναι βασικά για atoi όλες τις προθέσεις και τους σκοπούς. Και βλέπεις ότι ακόμη και να χρησιμοποιήσετε null και 10. Αυτό σας δίνει τη δυνατότητα πραγματικά να πάρετε ένα string, και να το μετατρέψει σε μια σειρά, και επιλέξτε τι βάσης που θέλετε να γίνει μέσα Έτσι, αυτό είναι η βάση 10 εδώ. Θα μπορούσα να είχα γίνει βάση για δύο δεκαδικών ψηφίων, βάσης 16 για δεκαεξαδικό. Είναι αρκετά δροσερό. Αλλά τα πολυλογώ, αυτό παίρνει δύο αριθμούς και τα προσθέτει μεταξύ τους. Οπότε ας το τρέξει. Και θα παρατηρήσετε επίσης, εκεί είναι μερικά πράγματα - έτσι έχω ένα makefile εδώ, και αν ανοίξετε ότι μέχρι, κάποια πράγματα θα παρατηρήσετε είναι διαφορετικά. Συγκεκριμένα, το επιχείρημα αυτό ακριβώς εδώ, ίσως Δεν το έχω ξαναδεί. Σε γενικές γραμμές, έχουμε καταρτίσει τα πράγματα με παύλα μηδέν, μηδέν. Dash μηδέν, μηδέν, σημαίνει ότι δεν κάνουν οποιαδήποτε βελτιστοποιήσεις, compiler. Μην προσπαθήσετε και να κάνουν τίποτα φανταχτερό, ή κάνει τίποτα τρέξει πιο γρήγορα, ή να πάρετε απαλλαγούμε από τις μεταβλητές που είναι αναγκαίες. Μην τη βελτιστοποίηση αυτόν τον κώδικα σε όλους, Ρωτάω για τρίτο επίπεδο βελτιστοποίησης. Ρωτάω λοιπόν compiler να κάνει πολλές βελτιστοποιήσεις. Μπορείτε να αλλάξετε ότι στο makefile όταν έχετε αυτό τον κωδικό, αν θέλετε για να δείτε διαφορετικά πράγματα. Ποια θα δείξει σε ένα δευτερόλεπτο. Γι 'αυτό και τρέχει ποσό μου 1 συν 2 συν 3. Κάποιος να μου δώσει δύο επιχειρήματα. ΚΟΙΝΟ: 4 και 5. ΟΜΙΛΗΤΗΣ: 4 και 5. Σας ευχαριστώ. Μεγάλη, λειτουργεί. Ποια είναι μερικά άλλα καλά επιχειρήματα να προσπαθήσουμε, για να βεβαιωθείτε ότι λειτουργεί αυτό; Όποιος; ΚΟΙΝΟ: 0. ΟΜΙΛΗΤΗΣ: 0 και; ΚΟΙΝΟ: Αρνητικό 3. ΟΜΙΛΗΤΗΣ: Λειτουργεί. Αλλά αυτές ήταν καλές επιλογές. Εντάξει, ας πάμε πίσω εδώ. Αυτό είναι mysum.c. Θα παρατηρήσετε ότι υπάρχει και κάτι ονομάζεται sumfunction.c. Και αυτό, λέει, OH, υπάρχει κάτι ορίζεται στο sumfunction.c. Εγώ δεν περιλαμβάνουν αυτό το αρχείο εδώ γιατί δεν χρειάζεται να. Αλλά εγώ να συνδεθεί σε όταν καταρτίζουν, που έχετε παρατηρήσει. Ας μετακινηθείτε προς τα επάνω. Είδαμε όταν καταρτίζονται MySum, το δικαίωμα εκεί, εμείς συνδέονται στο δυαδικό από sumfunction.o. Και δεν χρειάζομαι το αρχείο κεφαλίδας επειδή, φυσικά, υπάρχει το δήλωση της συνάρτησης. Έτσι, απότομη περιλαμβάνουν συνήθως μόνο puts σε μια δήλωση της συνάρτησης. Εδώ έχω απλά να το θέσω κατ 'ευθείαν στον κώδικα. Και γι 'αυτό πρέπει να κάνουμε είναι η σύνδεση στο δυαδικό, το οποίο κάνω. Οποιαδήποτε εικασίες για το τι είναι σε sumfunction.c; Τι κώδικα που έχω γράψει σε sumfunction.c; ΚΟΙΝΟ: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Οι εικασίες; Ναι; ΚΟΙΝΟ: Νομίζω, ορίζει περίπου [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Ναι. Έτσι κάνω write int ποσό int a. Γράφω αυτή τη γραμμή, και στη συνέχεια να έχω ανοιχτό άγκιστρο, άγκιστρο κλειστά. Τι νομίζετε ότι γράφω μέσα εκείνα άγκιστρα, μέσα σ'αυτή τη συνάρτηση; Ναι; ΚΟΙΝΟ: Επιστροφή ισούται με ένα. ΕΠΕΞΕΡΓΑΣΤΗΣ: Αυτή είναι μια πολύ καλή εικασία. Ποιος νομίζει ότι [; Manu?] Είναι σωστό; Λέει επιστρέψει ένα συν b. Εντάξει, δεν είναι όλοι. [? Akshar,?] κάνετε, εγώ; Είσαι σίγουρος; OK. Τι; ΚΟΙΝΟ: Μπορείτε να γράφονται λάθος. ΟΜΙΛΗΤΗΣ: Όχι, δεν το έκανα. Ναι, ακριβώς kidding. Έχεις δίκιο. Αυτό είναι ακριβώς αυτό που λέει. Είναι επιστρέψει ένα συν b. Αυτό κάνει πολύ νόημα. Εντάξει, ας πάμε πίσω εδώ. Βλέπουμε πώς η κεφαλίδα - αυτό είναι το είδος επιστροφής. Θυμηθείτε, έχουμε δει εκείνη την ημέρα ένα, η τύπο της λειτουργίας επανέλθουν, αλλά πηγαίνει πριν από το όνομα της συνάρτησης int. Εδώ, έχω γράψει int. Τι νομίζετε ότι θα συμβεί, εάν σε αυτό το λειτουργία, δεν γράφω int, αλλά Γράφω ανυπόγραφο; Η διαφορά, βέβαια, είναι ότι ανυπόγραφο αντιπροσωπεύει μόνο θετικό ακέραιοι, και μπορεί να είναι int θετικό ή αρνητικό. Έτσι έχω αλλάξει την επιστροφή τύπος αυτής της λειτουργίας. Αυτός ο κωδικός δεν ταιριάζει αυτή η επιστροφή, πληκτρολογήστε εδώ. Τι νομίζετε ότι θα συμβεί όταν καταρτίζουν; Θα πρέπει να μου φωνάζεις. Δεν φωνές. Τι γίνεται όταν τρέχω το πρόγραμμα; Ας κάνουμε πριν 0 αρνητικό 3, 1 ή αρνητική. Εξακολουθεί να λειτουργεί, παρόλο που λέω είναι επιστρέφοντας ένα ανυπόγραφο ακέραιο. Σαφώς είναι να μην επιστρέψει ένα ανυπόγραφο ακέραιος. Είναι επιστρέφοντας ένα υπογεγραμμένο ακέραιο. Είναι επιστροφή αρνητική 1. Εντάξει, αυτό είναι περίεργο. Τι γίνεται αν πάω σε εδώ και να το κάνουμε αυτό; Έτσι έχω αλλάξει τα πάντα από int σε ανυπόγραφο. Μπορεί να πάρει μόνο ανυπόγραφα ακέραιοι. Αλλά εμείς εξακολουθούμε να πιστεύουμε ότι αυτό θα τρέξει; ΚΟΙΝΟ: Ναι. ΟΜΙΛΗΤΗΣ: Θα. Αυτό είναι τρελό. Και περνάμε σε ένα σαφώς καθορισμένες ακέραιος, μπορούμε να περάσουμε δύο υπογραφεί ακέραιος, εξακολουθεί να λειτουργεί. Εντάξει, κάποιες ιδέες γιατί ακόμα λειτουργεί, ή ό, τι συμβαίνει; Ναι, Τζεφ. ΚΟΙΝΟ: Έχει κάτι να κάνει με τη βελτιστοποίηση σας ότι έχετε τόνισε. ΟΜΙΛΗΤΗΣ: Όχι. Θα μπορούσαμε να αλλάξουμε τη βελτιστοποίηση, θα εξακολουθούν να εργάζονται. Μπορώ να το κάνω αυτό για σας, αλλά - ΚΟΙΝΟ: Θα πάρω τον λόγο σας για αυτό. ΟΜΙΛΗΤΗΣ: Ναι. Εάν ανοίξετε το makefile εδώ, Έχω αλλάξει την βελτιστοποίηση. Έτσι, μπορείτε να κάνετε εξόρμηση μηδέν, μηδέν. Θα εξακολουθούν να εργάζονται. Άλλες σκέψεις; Εσείς όλοι αναμένεται να λειτουργήσει, έτσι Γιατί να περιμένεις να λειτουργήσει; Όχι; Σιωπή. OK. Θα πρέπει να περιμένει επτά δευτερολέπτων, γιατί μια ερώτηση. Έτσι, το δροσερό πράγμα για το C, και έχετε βιώσει πιθανότατα πριν - θα δεν θα μπορούσε να έχει, αυτό θα μπορούσε να είναι η πρώτη φορά. Αλλά, όπως όλοι γνωρίζετε, όταν γράφω κάτι σε C, δεν αποθηκεύσετε, όπως αυτό στον υπολογιστή. Είναι αποθηκεύονται ως μονάδες και μηδενικά. Στη συνέχεια, από τον κώδικα C σε κώδικα assembly. Έχει δει κανείς κώδικα assembly πριν, κώδικα μηχανής συναρμολόγησης; Θα εξετάσουμε σε ένα δευτερόλεπτο. Στη συνέχεια, από τον κώδικα C σε κώδικα assembly. Και εσείς ξέρετε τα στάδια σύνταξης. Θα έπρεπε να απομνημονεύσουν ότι για ένα κουίζ, και στη συνέχεια να γράψει σε ένα κουίζ μηδέν. Οι περισσότεροι άνθρωποι λάθος. Νομίζω ότι εσείς καρφωμένα. Αλλά, εσείς είστε η καλύτερη ενότητα για κουίζ, από τον τρόπο. Ποια είναι φοβερό. Δεν θα σας βλάψει. Μην ανησυχείτε. Αλλά είναι πραγματικά δροσερό. Καλή δουλειά. Έτσι, πηγαίνει σε συμβολική γλώσσα, και Στη συνέχεια πηγαίνει σε αυτά και μηδενικά. Και αυτοί και τα μηδενικά είναι αποθηκευμένο στην κάρτα υπολογιστή, και αυτό είναι που αποθηκεύονται στο η a.out, ή στην περίπτωση αυτή, το εκτελέσιμο αρχείο. Και ο υπολογιστής τρέχει αυτά και μηδενικά. Σωστά; Έχουμε μάθει αυτό πριν. Έτσι, το δροσερό πράγμα είναι, αυτό το ανυπόγραφο ιδέα, η ιδέα των τύπων ακεραίων ανυπόγραφο, κλπ, κλπ, αυτό είναι εδώ στη γλώσσα C. Αυτοί υπάρχουν. Αλλά οι τύποι δεν υπάρχουν σε αυτά και μηδενικά. Τύποι δεν χρειάζεται καν πραγματικά υπάρχουν σε το επίπεδο γλώσσας assembly. Έτσι, αυτό είναι κάτι που υπάρχει στην C κόσμο, αλλά δεν υπάρχει στον υπολογιστή κόσμου ή επεξεργαστής κόσμο. Αυτό είναι κάποια αφαίρεση ότι η C γλώσσα έχει συμπεριληφθεί, για να μας πιο εύκολη τη ζωή. Έτσι, στο τέλος της ημέρας, μπορώ να γράψω πολλά διαφορετικά πράγματα εδώ, και δεν κάνει τη διαφορά. Επειδή αυτό υπάρχει μόνο στον κόσμο C. Δεν υπάρχει στην αυτά και μηδενικά κόσμο. Και το πρόγραμμα μας εκτέλεσης αυτά και μηδενικά κόσμο. Έτσι, είναι σαφές ότι δεν καεί ακόμα το μυαλό σας. Αλλά νομίζω ότι είναι cool. Ναι, Τζεφ. ΚΟΙΝΟ: Έτσι, αν αντί για κάνει int, char κάνετε. Και ήσουν - ΟΜΙΛΗΤΗΣ: Ας το κάνουμε σε ένα λεπτό. ΚΟΙΝΟ: Επειδή τότε μπορείτε να πάρετε μια ανυπόγραφο μετάβαση από αρνητικές έως 128 127 ή 0 έως 255. ΟΜΙΛΗΤΗΣ: Έτσι char είναι προβληματική. Ξέρει κανείς γιατί char θα προβληματική, και θα ήταν πραγματικά αλλάξουν τα πράγματα σε αυτά και μηδενικά κόσμο; ΚΟΙΝΟ: Λόγω του μεγέθους του char. ΟΜΙΛΗΤΗΣ: Το μέγεθος του char είναι 1. Έτσι, ανυπόγραφο είναι επίσης 4 bytes. Έτσι char θα βίδα πράγματα. Αλλά τι είναι 4 bytes που είναι σχετίζεται με μια χαρα; Ή ότι προσθέτει ένα επιπλέον - μπορείτε να βάλετε ένα ακόμα χαρακτήρα μετά char. ΚΟΙΝΟ: Χαρ αστέρι. ΟΜΙΛΗΤΗΣ: Char αστέρων διαθέτει 4 bytes. Οπότε ας κάνουμε κάτι αυτό είναι ένα αστέρι char. Έτσι, αυτό θα μπορούσε πιθανότατα να λειτουργήσει, αλλά είμαστε πρόκειται να κάνει κάτι ακόμα πιο τρελός από αυτό. Κατά τη γνώμη μου, τρελός. Τώρα έχω γράψει μια συνάρτηση που επιστρέφει ένα δείκτη, και παίρνει δείκτη και ένα ανυπόγραφο αξία - Θα αλλάξετε αυτή πίσω int έτσι δεν είμαστε κάνει πάρα πολλές αλλαγές ταυτόχρονα. Και αυτό έχει μια σειρά που ονομάζεται ένα, ευρετήρια στη συστοιχία, και επιστρέφει τα διεύθυνση. Έχουμε δει αυτούς τους τελεστές πριν. Αυτό, τι νομίζετε ότι αυτό θα να κάνει, σε αντάλλαγμα, όταν το τρέχω; Τι νομίζετε ότι πρόκειται να κάνει; Οποιαδήποτε εικασίες; ΚΟΙΝΟ: segfault. ΟΜΙΛΗΤΗΣ: Τι; Segfault; Αυτό είναι μια καλή εικασία. Tom λέει το ίδιο πράγμα. Οποιεσδήποτε άλλες εικασίες; Ποιος νομίζει ότι πρόκειται να κάνουν το ίδιο πράγμα; Ποιος νομίζει ότι πρόκειται να segfault; Κάνει το ίδιο πράγμα. Λυπάμαι. Αλλά, φυσικά, έχουμε θέσει σε 1 και 2. Και αυτά είναι έγκυρα, σωστά; Ας δούμε, μπορούμε να πάμε στο δεύτερη θέση μίας συστοιχίας. Αλλά τι θα γινόταν αν κάναμε β αρνητικός αριθμός; Αυτό είναι πιθανώς μια καλύτερη εικασία για κάτι segfaulting. Εξακολουθεί να λειτουργεί. Εντάξει, αυτό είναι τρελό τώρα. Αυτό είναι εξίσου έγκυρη λειτουργία άθροισμα. Αυτό κάνει ακριβώς το ίδιο πράγμα όπως η επιστροφή των a και b. Μπορεί κάποιος να εξηγήσει γιατί αυτό είναι ένα καλό Συνοψίζοντας τη λειτουργία, ή γιατί αυτό λειτουργεί; Τι συμβαίνει εδώ; Γιατί αυτό κάνει ακριβώς το ίδιο πράγμα όπως το παλιό μας λειτουργία άθροισμα; [? Akshar,?] τι συμβαίνει; ΚΟΙΝΟ: Επειδή όταν έχετε ένα ένα που είναι μια διεύθυνση στην η μνήμη τοποθεσία - και όταν κάνετε το σύμβολο, το πηγαίνει σε αυτή τη διεύθυνση μνήμης. Και όταν θα πάτε να β, είστε το είδος του κινούμενα βήματα από τη διεύθυνση της μνήμης, που επιστρέφετε αυτό. Έτσι είστε στην πραγματικότητα, στην πραγματικότητα, προσθέτοντας α και β [δεν ακούγεται]. Πού είναι τυπικές λειτουργίες σχετικά με τη δήλωση αυτή; Όπως, πού οι παρενθέσεις πέφτουν; Είναι η επιστροφή της διεύθυνσης για α πριν ή μετά [δεν ακούγεται]; ΟΜΙΛΗΤΗΣ: Δεν πρόκειται να δείκτη σε β - ή δείκτη σε ένα - και, στη συνέχεια, να επιστρέψει τη διεύθυνση. ΕΝΤΑΞΕΙ, έτσι πήγαν όλοι καταλαβαίνουν τι [; Akshar?] είπε, και εξήγησε, γιατί αυτό λειτουργεί; Δεν το έκανα, η πρώτη φορά που κάποιος εξήγησε αυτό για μένα. Θα ήθελε κανείς μια φωτογραφία να το εξηγήσουμε αυτό; Εμείς πάμε για να σχεδιάσετε μια εικόνα, με δεν υπάρχουν δείκτες, αυτό είναι υπέροχο. Βρέθηκε κάποια. Έτσι έχουμε μια σειρά που είναι μια σειρά από κουτιά. Το πρώτο είναι ένας δείκτης 0, ο δείκτης 1, 2, 3, 4, τελεία, τελεία, τελεία. Μια τυπική διάταξη. Και επιπροσθέτως έχουν δείκτες, όλα έχουν διευθύνσεις μνήμης. Οπότε ας δώσει σε αυτό το διεύθυνση μνήμης 13, 14, 15, 16, 17, κ.λπ.. Είναι όλοι εδώ μέχρι τώρα. Έτσι, ένα είναι μια διεύθυνση. Το όνομα ενός πίνακα, ενός δείκτη αποθηκεύεται εκεί. Είναι ένας δείκτης, είναι μια θέση μνήμης, στην αρχή του πίνακα. Έτσι, αν αυτή ήταν η σειρά, α θα είναι η τιμή 13. Και, φυσικά, μπορούμε να δώσουμε μια οποιαδήποτε τιμή θέλουμε. Char αστέρι ένα, μπορούμε να δώσουμε μια οποιαδήποτε διεύθυνση μνήμης που θέλουμε. Μπορούμε να δώσει 0, μπορούμε να δώσουμε αρνητική 1 - 1 αρνητικό δεν υπάρχει, έτσι ώστε να είναι μάλλον προβληματική, αλλά είδατε ότι εξακολουθεί να εργαστεί. Έτσι, μπορούμε να δώσουμε ένα οποιοδήποτε αριθμό που θέλουμε, κάθε διεύθυνση μνήμης που θέλουμε. Στη συνέχεια, int b, λέει, εντάξει, πάμε αυτόν τον αριθμό των βημάτων στη συστοιχία. Έτσι, εάν b ισούται με 2, και το α ισούται με 13, είμαστε στη διεύθυνση μνήμης 13. Και πάμε δύο βήματα, και γι 'αυτό είμαστε εδώ. Και το εμπορικό σημαίνει επιστροφή η διεύθυνση αυτής της τοποθεσίας. Και η διεύθυνση είναι, φυσικά, 15. Έτσι έχουμε 13 συν 2, ή ένα συν b, η οποία είναι 15. Το ερώτημα είναι, αν και - Λυπάμαι. Μήπως αυτό ξεκαθαρίσω τα πράγματα για το γιατί αυτό λειτουργεί; ΚΟΙΝΟ: Γιατί θα λειτουργήσει πηγαίνει - έτσι μπορείτε να έχετε μια σειρά και πάω σε ένα αρνητικό δείκτη; ΟΜΙΛΗΤΗΣ: Σωστά. Έτσι κάναμε αρνητικούς αριθμούς, έτσι ώστε να είναι η - αυτό κάνει νόημα όμως, Πρώτα, [? Avi,?] για σας; ΚΟΙΝΟ: Ναι, είμαι απλά [Δεν ακούγεται], αλλά - ΟΜΙΛΗΤΗΣ: Ναι, αυτό θα επιστρέψει 15. Εάν ένας ήταν 13, και b ήταν 2, αυτό θα επιστρέψει 15. ΚΟΙΝΟ: Έτσι, η μηδενική ευρετηρίαση δεν να γίνει ένα θέμα, έτσι δεν είναι; Επειδή είστε κινείται από 0. ΟΜΙΛΗΤΗΣ: Σωστά. Έτσι είστε σε συνεχή κίνηση - οπότε αν b ήταν 0, δεν θα μετακινηθεί οπουδήποτε. Και θα ήθελα απλά επέστρεψε τη διεύθυνση - αν b ήταν 0, που είναι κατ 'ουσίαν να αποκατασταθεί η διεύθυνση του a. Περνώντας σε ένα char αστέρι και την επιστροφή του διεύθυνση του a είναι απλά μια επιστροφή, κατ 'ουσίαν. Εντάξει, το ερώτημα είναι γιατί αρνητικοί αριθμοί λειτουργούν; Και αυτό είναι το πραγματικά δροσερό πράγμα για αυτό, διότι αυτό θα πρέπει να segfault. Και θα segfault αν έκανε κάτι τέτοιο. Ας πούμε, int. Έτσι, αυτός ο κώδικας είναι ολόιδια και πρέπει να συμπεριφέρονται με τον ίδιο τρόπο. Ουσιαστικά, το χ είναι μία μεταβλητή σκουπίδια, και έτσι αυτό πρέπει να συμπεριφέρονται πανομοιότυπα. Ας κάνουμε αυτό - oops - το αστέρι. Εντάξει, είμαστε ήδη πάρει τα σφάλματα εδώ, επειδή είναι ήδη πρόκειται να είναι θυμωμένος σε μένα, γιατί ήδη ξέρει τι έρχεται. Ειδικότερα, το δεύτερο. Διεύθυνση στοιβάζονται της μνήμης που σχετίζονται με μια τοπική μεταβλητή. Ουσιαστικά, δεν πρόκειται για την κατάρτιση αυτό, και στη συνέχεια, Πάω να κάνουμε αναίρεση αυτό που μόλις έκανε. Αλλά επειδή ποτέ δεν είμαστε πραγματικά πρόσβαση σε ό, τι είναι στην μνήμη θέση, δεν πρόκειται να segfault. Είμαστε στην πραγματικότητα ποτέ δεν κοιτάμε για το τι είναι στο δεύτερο πλαίσιο ή ό, τι είναι σε κάθε κουτί αυτού του πίνακα. Είμαστε μόνο λέγοντας, εδώ είναι η διεύθυνση του πράγματος που ψάχνετε και επιστρέφει αυτή τη διεύθυνση. Είμαστε στην πραγματικότητα ποτέ δεν πήγαιναν σε πίνακα για να δούμε σε αυτή τη θέση. Και επειδή ποτέ δεν αγγίζουν τη μνήμη, δεν έχουμε πρόβλημα. Εμείς δεν παίρνουν μια segfault. Αν προσπαθούσαμε να, και πάλι, αγγίξτε ότι μνήμης, αγγίξτε ό, τι ήταν στο α ή β - ή ένα βραχίονα b, και υποθέτοντας α ήταν 0 και - εάν ήταν 0, ακόμη, ότι θα είναι αρκετά κακό, γιατί δεν μπορούμε να πάμε προς τα κάτω σε όλη τη διαδρομή εκεί. Εάν Α και Β είναι τα δύο 0, και προσπαθήσαμε να αγγίζετε αυτό που ήταν εκεί, τότε θα πρέπει, να πάρει στο πρόβλημα. Αλλά αν δεν αγγίζουν τι υπάρχει εκεί, απλά να επιστρέψει τη διεύθυνση, είναι στην πραγματικότητα δεν πρόκειται να segfault επειδή σας επιτρέπει να εκτελέσετε τις εργασίες αυτές. Παίρνει μόνο θυμωμένος μαζί σας, και παίρνει super θυμωμένος, όταν προσπαθείτε να αγγίξετε η πραγματική μνήμη και τι είναι σε αυτή τη θέση μνήμης. Μήπως αυτό έχει νόημα; Αυτό είναι απλά ένα τρελό μέρος του C. Έτσι, έχουμε ένα ή περισσότερα από αυτά. Ποιος πιστεύει ότι αυτό είναι δροσερό; Περισσότεροι άνθρωποι. Αυτό είναι καλό. Εντάξει, αυτό είναι το τελευταίο μας. Και θα ήθελα να μου πείτε αν ή δεν νομίζετε ότι αυτό συμβαίνει να κάνουν ακριβώς το ίδιο πράγμα. Έχω γράψει αυτά κάπου. Δεν είμαι απομνημόνευση τους. Ας δούμε, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Έτσι, αυτό είναι ένας πίνακας, τώρα, δεν είναι μια λειτουργία. Και είναι μια σειρά, γιατί έχουμε τετράγωνο παρένθεση, δεν άγκιστρα. Και αυτό είναι μια σειρά από τι είδους; Όποιος, ε; ΚΟΙΝΟ: δεκαεξαδικό αριθμό τους; ΟΜΙΛΗΤΗΣ: Αλλά τι είναι ο τύπος C; Έχουν όλα δεκαεξαδικό αριθμό. Ποια είναι η τύπου C; Θα σας λέει. ΚΟΙΝΟ: Είναι ανυπόγραφο χαρακτήρες. ΟΜΙΛΗΤΗΣ: Δεξιά, ανυπόγραφο χαρακτήρες. Και δύο δεκαεξαδικούς αριθμούς είναι ένα byte. Έτσι, αυτά είναι 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. Είναι μια σειρά από 9 bytes. Εντάξει, ίσως ήδη γνωρίζετε η απάντηση στο ερώτημα αυτό. Αλλά, τι νομίζετε ότι θα συμβεί όταν τρέχω; Το λέω και πάλι, σε mysum.c, Περιμένω μια λειτουργία που διαρκεί δύο ακέραιοι. Και είμαι αντί λέγοντας ότι το ποσό είναι μία σειρά χαρακτήρων. Τι πρόκειται να συμβεί όταν Τρέχω. / MySum και να κάνει; Λοιπόν, κατ 'αρχάς, οι περισσότεροι από εσάς θα είναι πιθανώς συμφωνούν ότι η make - Ω, όχι, ακριβώς kidding. Τι κάνω λάθος; Uh oh. Αυτός πρέπει να είναι άγκιστρα. Αυτό είναι το πώς θα προετοιμαστεί μια σειρά. Λάθος μου. Έτσι, είδαμε πριν ότι οι τύποι είναι μια αφαίρεση C-επίπεδο, όχι το επίπεδο του υπολογιστή αφαίρεσης. Έτσι, οι περισσότεροι από εσάς ίσως να αναμένεται να κάνει, ή να υποθέσει ότι θα κάνει. Αλλά τι όταν τρέχω. / MySum; Τι πρόκειται να συμβεί; Οποιαδήποτε εικασίες; ΚΟΙΝΟ: Δεν πρόκειται να εκτυπώσετε μια λέξη. ΟΜΙΛΗΤΗΣ: Δεν πρόκειται να εκτυπώσετε μια λέξη. Ποια λέξη; ΚΟΙΝΟ: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Οποιεσδήποτε άλλες εικασίες; OK, εκτυπώστε μια φράση. Μπορείτε να έχετε οποιαδήποτε φράση. Αυτό θα είναι δίπλα σας. Όποιος έχει μια διαφορετική εικασία; Άννα, τι είναι εικασία σας; ΚΟΙΝΟ: Θα εκτυπώσετε - δύο επιστολές, ή [δεν ακούγεται] ένα γράμμα. ΟΜΙΛΗΤΗΣ: Ένα γράμμα. ΚΟΙΝΟ: Μπορώ να μετρήσει πώς πολλά [δεν ακούγεται]; ΟΜΙΛΗΤΗΣ: Εννέα. Λοιπόν, είμαι πρόκειται να το τρέξει. Κάνει ακριβώς το ίδιο πράγμα. Προσθέτει δύο αριθμούς μαζί. Λοιπόν, ας περάσει τα δύο επιχειρήματα. Δεν παίρνει επιχειρήματα. Γι 'αυτό και δεν ξέρω πού θα μπορούσε ενδεχομένως να πάρετε αυτά τα επιχειρήματα. Αλλά ας περάσει σε 100 και 0. Και προσθέτει 100 και 0. Αυτό είναι τρελό. Νομίζω πως ναι. Αρνητικό 4, που λειτουργεί πάρα πολύ. Μπορείτε να κάνετε ό, τι θέλετε. Αυτό είναι ένα εξίσου έγκυρη λειτουργία άθροισμα. Αυτή είναι μια λειτουργία άθροισμα. Αλλά, όχι, λέτε ότι είναι μια σειρά από bytes. Λοιπόν, τι συμβαίνει εδώ; Έτσι, και πάλι, ας πάμε πίσω σε αυτή την ιδέα ότι είπαμε στην αρχή. Μπορείτε να πάτε από τον κωδικό C-επίπεδο, για τη συναρμολόγηση γλώσσα, με αυτά και μηδενικά. Αυτό είναι δεκαεξαδικό. Αλλά αυτό είναι πραγματικά ακριβώς μια Πολλοί από μονάδες και μηδενικά. Αυτό είναι 72 μονάδες και μηδενικά, έτσι δεν είναι; 72 μονάδες και μηδενικά. 9 bytes. Κάθε byte έχει 8 bits. Κάθε bit είναι ένα ένα ή μηδέν. Έτσι, 72 αυτοί ή μηδενικά. Έχω μόλις τους γραμμένο σαν αυτό - αντί να γράψω αυτό ως ένα πολύ αυτά και μηδενικά. Αλλά αυτό θα πάει από το C-επίπεδο τη γλώσσα, τη συναρμολόγηση γλώσσας, με τον κωδικό. Και αυτό θα εκτυπώσετε στον κώδικα, κάπου, αυτά τα 72 αυτά και μηδενικά ότι έχω γράψει εδώ. Έτσι κάπου το ότι - ας πάμε εδώ - κάπου στο MySum, το πρόγραμμα, υπάρχουν είναι αυτά τα 72 αυτά και μηδενικά που έχω γραπτές και είπε ότι για να γράψει. Τώρα, τυχόν εικασίες για το τι εκείνες 72 αυτά και μηδενικά σημαίνει; ΚΟΙΝΟ: Πιθανώς το ίδιο πράγμα που επιστρέφουν ένα συν b. ΟΜΙΛΗΤΗΣ: Πιθανώς το ίδιο πράγμα που επιστρέφουν ένα συν b. Ας βεβαιωθείτε ότι. Ας καταλάβουμε πώς το έκανα αυτό. Έτσι, αν πάτε πίσω εδώ, μπορώ να σας πω για να εκτελέσετε αυτή την εντολή, objdump-S sumfunction.o. Πάμε να το εκτελέσετε. objdump - obj, χωματερή. Βασικά μπορεί να μου δώσει ό, τι θέλω να δω. Μπορεί να μου δώσει τη συμβολική γλώσσα. Μπορεί να μου δώσει τα αυτά και μηδενικά. Έχει έναν τόνο των σημαιών. Αυτό είναι το ένα θα πάμε να χρησιμοποιήσει για τώρα. Dot - όπως μπορείτε να δείτε στις διαφάνειες - παύλα κεφαλαίου S λέει, διανθίστε, πηγαίο κώδικα - αυτή η γραμμή είναι από το C - με το συγκρότημα κώδικα και με τα αυτά και μηδενικά. Και θα πάμε να τρέξει το σε sumfunction.o. Γιατί θα είναι πιο εύκολο να δούμε. Πάλι - ε; ΚΟΙΝΟ: Μπορείτε να γράφονται λάθος. ΟΜΙΛΗΤΗΣ: Αλλά είμαι πραγματικά συμβαίνει να το ξεκαθαρίσω για ένα δευτερόλεπτο. Είμαι πρώτος πρόκειται να ανοίξει Απλά sumfuntion.o. ΚΟΙΝΟ: Μπορείτε να γράφονται λάθος την πρώτη φορά. ΟΜΙΛΗΤΗΣ: Classic. Άθροισμα - ότι είναι μια σκληρή λέξη, όμως. Θα εκπλαγείτε. Εντάξει, έτσι αυτό είναι sumfunction.o. Δεν θα μπορούσα να σας πω ακόμη. Υπάρχουν πολλά μηδενικά, σαφώς πολύ μηδενικά, και δεν υπάρχει κάποια άλλη πράγματα που δεν είναι μηδενικά. Αλλά ως επί το πλείστον μηδενικά. Φαίνεται σαν να υπάρχει κάποια αυτά. Έτσι, σαφώς, αυτό είναι δύσκολο να διαβαστεί. Αυτή είναι η δυαδική γλώσσα. Ας τώρα να το ανοίξετε - τι; Τι κάνω λάθος; Μήπως μπορώ να το προφέρω σωστά; Εντάξει, αυτό είναι δύσκολη. Χρειάζομαι ένα δευτερόλεπτο για να καταλάβω τι κάνω λάθος. Αυτό είναι ένα λάθος. Αυτό είναι παράξενο. Ω, γι 'αυτό. Πάω να επιστρέψω στο αρχικό μας ένα, ώστε να μπορούμε να δούμε το τον κωδικό του αντικειμένου αυτού. Γιατί εκεί δεν είναι πραγματικά πρόκειται να να είναι οτιδήποτε, όταν εμείς απλά βάλτε το αυτά και μηδενικά μέσα Εκεί πάμε. Εντάξει, έτσι ο καθένας μπορεί να δει αυτό. Αυτή η λειτουργία, όπως είπα, σβήσει τις γραμμές C - γραμμές πηγαίου κώδικα - με κάποιες οδηγίες συναρμολόγησης. Εδώ είναι η γραμμή μας κώδικα. Εδώ είναι ένα, εδώ είναι ένα άλλο. Εδώ είναι η οδηγίες συναρμολόγησης. Αυτό είναι ό, τι μοιάζουν. Οδηγίες συναρμολόγησης - μπορείτε να μάθετε περισσότερα από αυτά, αν παίρνετε άλλες κατηγορίες CS, αλλά είναι γενικά μια εντολή. Και στη συνέχεια μια πηγή και έναν προορισμό. Και στη συνέχεια, εδώ είναι το δυαδικό κώδικα που αντιστοιχεί στην εν λόγω συνέλευση διδασκαλίας. Έτσι, όπως μπορείτε να δείτε, αυτή η λειτουργία άθροισμα, στο τέλος της ημέρας, είναι τρεις οδηγίες συναρμολόγησης. Μόνο τρεις. Ένα mov - αυτό το m-o-v αντιπροσωπεύει μια κίνηση. Προσθήκη πόδι Add. Και r-e-t σημαίνει επιστροφή. Έτσι, ένα mov, ένα πρόσθετο, μία επιστροφή. Και αυτά, εδώ, είναι τα μηδενικά και αυτά που αντιστοιχούν στις εν λόγω κώδικα. Έτσι, αυτά τα μηδενικά και αυτοί, αν γνωρίζουν εκείνοι, μπορείτε απλά να βάλετε εκείνων που κατ 'ευθείαν; Και τότε αυτό θα κάνει το ακριβώς το ίδιο πράγμα. Επειδή, στο τέλος της ημέρας, όλοι είστε εκτέλεσης είναι μια μακρά σειρά μηδενικά και αυτοί. Και αυτό είναι ό, τι τον κωδικό σας είναι πραγματικά. Και ο λόγος - ας ρίξουμε μια ματιά σε ένα πράγμα. Μήπως έχω ανοιχτό το makefile; Έτσι, αν πήγαμε πίσω στο ταμπλό μηδέν, μηδέν εδώ - Συγγνώμη, πρωτεύουσα o, κεφάλαιο O μηδέν, δεν είναι μηδέν, μηδέν. Και εμείς έκανε, θα ήταν εξακολουθούν να λειτουργούν με τον ίδιο. Αλλά τώρα θα παρατηρήσετε ότι υπάρχουν πολύ περισσότερες οδηγίες συναρμολόγησης. Αυτό συμβαίνει γιατί, πάλι, ζήτησα από τον μεταγλωττιστής να μην κάνει καμία βελτιστοποίηση. Γι 'αυτό και θα μπορούσε να πάρει ακόμα όλα αυτά μηδενικά και αυτοί, και να ρίξει τους, και ότι θα μπορούσε να λειτουργήσει. Έκανα ακριβώς οι βελτιστοποιήσεις, επειδή Είναι λίγο πιο εύκολο στη συνέχεια, να γράψω αυτό το array. Αλλά αυτό θα μπορούσε να λειτουργήσει εξίσου καλά. Εντάξει, θα πάμε να κάνουμε ένα τελευταίο πράγμα, γιατί πιστεύω ότι είναι το πιο cool μέρος. Ακόμα κι αν όλοι είναι σαφώς έχουν ήδη καεί και άφωνος. Τα μυαλά μας καεί. [Δεν ακούγεται] Έτσι, αυτά είναι από μια διαφορετική κατηγορία CS, η οποία είναι εξαιρετικά ενδιαφέρουσα, ότι έχω λάβει - CS61. Θα ήθελα πολύ να σας ενθαρρύνω να το πάρετε. Αλλά το δροσερό μέρος για αυτό το γεγονός, ότι τα πράγματα είναι απλά μηδενικά και αυτοί, είναι ότι τα πάντα είναι μηδενικά και αυτοί. Έτσι, μπορείτε να πάρετε ένα αρχείο που έχει το σωστή μηδενικά και αυτοί που θέλετε κάπου σε αυτό, και να χρησιμοποιεί το εν λόγω τμήμα μηδέν και ως συνάρτηση άθροισμα. Τι εννοώ με αυτό; Θέλω να πω, μπορείτε να πάρετε ένα αρχείο εικόνας που έχει τη σωστή σειρά και μηδενικά αυτά, που τυπώνουν κάτι έξω σε μια εικόνα. Και ένα πρόγραμμα μπορεί να ερμηνεύσει είναι μια εικόνα, αλλά μπορείτε να το ερμηνεύσει, αν θέλετε, ως συνάρτηση άθροισμα. Έτσι, αν ήθελε να ανοίξει, για παράδειγμα, αυτή η εικόνα. Ας πάμε, Hello Kitty. Εξαιρετικό μικρό εικόνα. Εδώ υπάρχει η συμβολοσειρά από μηδενικά και αυτοί. Αυτά τα 72 μηδενικά και αυτοί υπάρχουν σε αυτή την εικόνα. Λοιπόν, τι μπορώ να κάνω, λοιπόν, είναι να γράψετε - Έχω να θυμάμαι πού βρίσκονται. Θα διαπιστώσετε ότι σε ένα δευτερόλεπτο. Αλλά το κάνουμε - επιτρέψτε μου να μάθετε πού βρίσκονται. Ένα sec. Ας κάνουμε - ΚΟΙΝΟ: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Ευχαριστώ. Έτσι, αν έχουμε εκτελέσει αυτό το πρόγραμμα, το οποίο αντί να διαβάζει σε ένα αρχείο, τότε θα πάει σε αυτό το δείκτη στο αρχείο. Και τότε, και πάλι, όπως ακριβώς MySum, παίρνει δύο αριθμούς. Μπορούμε να προσθέσουμε τους αριθμούς ακριβώς το ίδιο όπως κάναμε πριν, το οποίο πηγαίνει στο σας δείξει πώς το γεγονός ότι, στο τέλος της ημέρας, όλα αυτά τα πράγματα είναι μηδενικά και αυτοί. Και αυτό είναι ακριβώς το πώς θα επιλέξετε να τα ερμηνεύσει. Και αν δούμε πραγματικά σε αυτή την εικόνα - ας ζουμ σε λίγο. Μπορεί ο καθένας να το δείτε; Θα παρατηρήσετε εδώ, υπάρχει κάποια περίεργη μουτζούρα. Πάμε - αυτή είναι η αρχική εικόνα. Θα παρατηρήσετε εδώ δεν υπάρχει μουτζούρα. Αυτός είναι ο κώδικας για τη συνάρτηση άθροισμα, είναι ότι η μικρή μουτζούρα εκεί δεξιά. Και στην πραγματικότητα, και πάλι, αν μπορείτε να μάθετε περισσότερα γι 'αυτό, θα συνειδητοποιήσετε ότι αυτό Hello Kitty, η οποία έχει ακόμη μεγαλύτερη μουτζούρες, έχει κώδικα που μπορεί να πάρει πάνω από ένα υπολογιστή αν δεν προστατεύεται κατάλληλα. Έτσι, μπορείτε να εκτελέσετε πραγματικά αυτό. Είμαι δεν πρόκειται να τρέξει τώρα. Αλλά μπορείτε να εκτελέσετε αυτό το Hello Kitty εικόνα, και να αναλάβει τον έλεγχο του υπολογιστή σας. Έτσι, αυτό είναι όλο για το demo. Μήπως κάποιος έχει απορίες, παρατηρήσεις, τις ανησυχίες; Νομίζω ότι αυτά τα πράγματα είναι συναρπαστική. Αυτό με ενέπνευσε για να μάθετε περισσότερα. Συστήνω ιδιαίτερα, αν σας ενδιαφέρει σε όλα τα σχετικά CS, να μου μιλήσει. Ακόμα κι αν είμαι ένας Κοινωνικών Σπουδών Συμπυκνωτής, είμαι CS, δευτεροβάθμια, έτσι Ξέρω ακόμα λίγο. Αλλά σίγουρα ξέρω τι τάξεις θα πρέπει να πάρετε. Νομίζω ότι είναι όλα πραγματικά ενδιαφέρον, και σας προτρέπω, βεβαίως, να μάθετε περισσότερα, αν σας ενδιαφέρει. Εντάξει, έχω ένα τελευταίο πράγμα. Λυπάμαι. Οποιεσδήποτε ερωτήσεις; Δεν είχα παύση να περιμένετε, αν κάποιος είχε απορίες σχετικά με αυτό. Είναι κάποιος πρόκειται να είναι ένας συμπυκνωτής CS; Ή το σκέφτομαι; Ένα, δύο, τρία, τέσσερα. Ένα - μόνο ένα. Η Άννα είναι η μόνη πλευρά που είναι έθεσε με αυταρχικό τρόπο. Εντάξει, αυτό είναι πολύ καλό. Assam, τι σκοπεύετε να κάνετε; ΚΟΙΝΟ: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Κωνσταντίνος; ΚΟΙΝΟ: Φυσική. ΟΜΙΛΗΤΗΣ: Πω πω, ότι ήταν γρήγορη. Είχατε μια κακή εμπειρία σε CS50; [Δεν ακούγεται], τι θα κάνεις; ΚΟΙΝΟ: Δεν έχω ιδέα. ΟΜΙΛΗΤΗΣ: Curt; ΚΟΙΝΟ: Econ ή CS. ΟΜΙΛΗΤΗΣ: Econ ή CS. Τομ; ΚΟΙΝΟ: Κάνω Stat. ΟΜΙΛΗΤΗΣ: Stat; OK. Τι είσαι; ΚΟΙΝΟ: Me? ΟΜΙΛΗΤΗΣ: Ναι. ΚΟΙΝΟ: Stat. ΟΜΙΛΗΤΗΣ: Stat. Ω, εκεί θα πάτε. Tom, μιλήστε με Alden. Emily, τι είσαι; ΚΟΙΝΟ: Βιοϊατρική - ΟΜΙΛΗΤΗΣ: Είστε σε αυτό το τμήμα; ΚΟΙΝΟ: Όχι. ΟΜΙΛΗΤΗΣ: Εντάξει, αυτό είναι Emily. Είναι φίλος μου. Σαφώς δεν είναι ότι η καλή της φίλη, γιατί μου δίνει έναν σκληρό χρόνο. Θα μπορούσε να είναι καλύτερο για μένα μπροστά του καθενός, μαθητής μου - ΚΟΙΝΟ: Κάνω οδηγό Q σας. ΟΜΙΛΗΤΗΣ: Αλήθεια; Uh oh. Εντάξει, είσαι καταπληκτική. Σ 'αγαπώ τόσο πολύ. Oh boy. Τέλος πάντων, εγώ, χθες το βράδυ, όπως πάντα - Είμαι βέβαιος ότι όλοι φαίνεται πραγματικά τόνισε αυτή τη στιγμή. Δεν ξέρω, είναι καινούριος - είναι εσείς αισθάνεστε τόνισε; Νιώθω τόνισε. Ήταν σαν, πηγαίνετε στο σπίτι για την Ημέρα των Ευχαριστιών. Είσαι σαν, Πάω να κάνει όλα αυτά τα πράγματα. ΚΟΙΝΟ: Είναι τόσο διαφορετική. ΟΜΙΛΗΤΗΣ: Ναι, και θα επανέλθω. Jeff, δεν αισθάνεστε αυτόν τον τρόπο; ΚΟΙΝΟ: Απλά σκέφτηκα Θα κάνω λίγο. ΟΜΙΛΗΤΗΣ: Εντάξει, ωραία. Έτσι έρχομαι πίσω, και δεν έχω κάνει τίποτα. Και είναι όλα σούπερ αγχωτική. Και εγώ, πραγματικά ενδιαφερόμενο, σχετικά με το αν ή όχι είμαι πρόκειται να τελειώσει ό, τι έχω να. Αλλά χθες το βράδυ, δεν τονίστηκε, Ήμουν λίγο λυπημένος. Έτσι έγραψα στο ημερολόγιό μου για τι ήμουν λυπημένος για. Και ήμουν λυπημένος για αυτό το τμήμα στην κατηγορία αυτή φτάνει στο τέλος της. Έτσι, ήμουν απλώς πρόκειται να διαβάσει για σας παιδιά ένα μικρό απόσπασμα του περιοδικού μου, από χθες το βράδυ. Μπορώ να πάρω μερικές χαρτοπετσέτες, ορισμένοι ιστοί από τον Tom; Όχι, Πάω να κλάψω. Δεν κλαίω. Όχι ότι δεν μπορείς να κλάψεις, Απλώς δεν μπορώ να κλάψω. Εγώ δεν ξέρω καν αν το δάκρυ μου αδένες εργασίας - δάκρυ αγωγοί. Δεν έχω φώναξε σε ένα μεγάλο χρονικό διάστημα. ΚΟΙΝΟ: [δεν ακούγεται]. ΟΜΙΛΗΤΗΣ: Εντάξει, ευχαριστώ. Εντάξει, υπάρχει ένα μικρό πρόλογο - υπάρχει κάποια άλλα μέρη του περιοδικού μου είσοδο, γιατί προσπαθώ να περιοδικό κάθε το βράδυ πριν από την πήρα στο κρεβάτι. Συστήνω ιδιαίτερα journaling. Αυτό σας βοηθά να επεξεργαστεί τα πράγματα, καθώς επίσης και είναι πολύ συγκινημένο από την ημέρα σας. Και αυτό το καθιστά πολύ πιο εύκολο να δούμε πίσω στην ημέρα σας και να συνειδητοποιήσετε ότι υπήρχαν πολλές καλές πράγματα που συνέβησαν. Ακόμα και αν νιώθετε στρεσαρισμένοι τη νύχτα ή πολύ αναστατωμένος, ή πραγματικά λυπηρό ή κούραση. Ω, Θεέ μου. Εγώ δεν ξέρω καν αν έχει γραφτεί ότι καλά, επειδή εγώ δεν το διορθώσουν. Αλλά θα το διαβάσει. Εγώ συνήθως δεν διαβάζουν μου περιοδικό, προφανώς. "Αύριο, θα διδάξει την τελική μου CS50 τμήμα του έτους. Είναι τρελό πώς πετάει γρήγορο χρόνο. Ωστόσο, μένω άναυδος από το πόσο διαφορετικά εμπειρία μου διδάσκει φέτος ήταν από ό, τι όταν ήμουν δευτεροετής φοιτητής. Για ορεκτικά, σίγουρα γνωρίζουν καλύτερα το υλικό. Αλλά μην το πείτε πρώτη μου ομάδα των μαθητών που. Το πιο σημαντικό, όμως, συνειδητοποίησα ότι η χαρά που προέρχεται από μόνιμες μπροστά από ένα δωμάτιο του τι αρχίζει σαν ξένοι, αλλά καταλήγει να είναι, σε τουλάχιστον, φίλους στο Facebook, είναι δεν είναι το πρώτο έτος απροσδόκητη επιτυχία. Αντίθετα, είναι από τη γνώση ότι, σε κάποια μικρή τρόπο, βοηθάτε ταλαντούχος, στοχαστικοί, ευχάριστο, και παθιασμένοι άνθρωποι να μάθουν λίγο περισσότερα σχετικά με την επιστήμη υπολογιστών. Είσαι μετατόπιση της εν λόγω λάμπα μόνο ένα bit στην υποδοχή της, έτσι ώστε να είναι σε θέση να λάμπουν φωτεινότερα από εσάς, ή, θα μπορούσε να φανταστεί στην αρχή του εξαμήνου. Βοηθάς μετατρέψει αυτές συνοφρυώματα ανάποδα προς τα κάτω και τις ερωτήσεις που παράσχει στήριξη, αλλά εξακολουθούν να επιτρέπουν μαθητές να σταθούν από μόνες τους. Είναι σίγουρα δεν είναι υπερβολή να να πω ότι αυτό το τμήμα είναι το αγαπημένο μου μέρος της εβδομάδας. Ή ακόμα ότι διστάζω να πω, ότι είναι όλα, στις 17:30 κάθε εβδομάδα, γνωρίζοντας ότι αυτό θα είναι πάρα πολύ καιρό μέχρι να συναντηθούμε και πάλι. Ωστόσο, είμαι απίστευτα ευγνώμων για καθένας που μου έδωσε αυτό το ευκαιρία να δώσει πίσω στους άλλους. Για David, για την υπομονή και την εμπιστοσύνη του. Για την παραγωγή ταινιών και του πληρώματος, για κάνει να μοιάζει κάπως αξιοσέβαστη. Και, το πιο σημαντικό, στους μαθητές μου, χωρίς τους οποίους θα είχα κανένα λόγο να περάσουν 10 ώρες υπολογίζοντας το καλύτερο τρόπος για να αντλήσει δείκτες, ή απλώστε μια πίνακα των δελφινιών, μέσω JavaScript. Όπως πάντα, αυτό είναι μια ευλογία. " Έτσι, με αυτό, σας ευχαριστώ παιδιά. Θα σας δω όλους στην εύλογη CS50, και η hackathon, αν είστε εκεί. Και αν έχετε ερωτήσεις, θα κολλήσω γύρω έως ότου δεν υπάρχουν πλέον. Αλλά μπορώ να σας ευχαριστήσω για μια υπέροχη χρονιά. [Χειροκροτήματα] ΟΜΙΛΗΤΗΣ: Θα ήθελα να κλάψω.