1 00:00:00,000 --> 00:00:02,420 >> [Bermain muzik] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 SPEAKER: Baiklah. 4 00:00:05,980 --> 00:00:08,540 Jadi mari kita bercakap tentang lain Perkara itu jenis yang unik kepada C, 5 00:00:08,540 --> 00:00:10,010 yang merupakan jenis data dan pembolehubah. 6 00:00:10,010 --> 00:00:12,340 Apabila saya katakan yang unik untuk C, saya benar-benar hanya bermakna dalam konteks, 7 00:00:12,340 --> 00:00:14,470 jika anda telah programmer untuk masa yang lama, 8 00:00:14,470 --> 00:00:16,270 Anda mungkin tidak bekerja dengan jenis data 9 00:00:16,270 --> 00:00:18,470 jika anda menggunakan moden bahasa pengaturcaraan. 10 00:00:18,470 --> 00:00:20,432 Bahasa moden seperti PHP dan JavaScript, 11 00:00:20,432 --> 00:00:22,640 yang kita juga akan melihat sedikit kemudian di dalam kursus ini, 12 00:00:22,640 --> 00:00:25,550 anda sebenarnya tidak perlu nyatakan jenis data bagi pembolehubah 13 00:00:25,550 --> 00:00:26,270 apabila anda menggunakannya. 14 00:00:26,270 --> 00:00:28,067 >> Anda hanya mengisytiharkan dan mula menggunakannya. 15 00:00:28,067 --> 00:00:29,900 Jika ia integer, ia tahu ia adalah bilangan bulat. 16 00:00:29,900 --> 00:00:31,960 Jika ia watak, ia tahu ia bersifat. 17 00:00:31,960 --> 00:00:35,320 Jika ia satu perkataan, ia tahu ia adalah satu tali, kononnya. 18 00:00:35,320 --> 00:00:37,300 >> Tetapi dalam C, yang merupakan bahasa yang lebih tua, kita perlu 19 00:00:37,300 --> 00:00:39,420 untuk menentukan data jenis setiap pemboleh ubah 20 00:00:39,420 --> 00:00:42,990 yang kita buat kali pertama yang kita gunakan pembolehubah itu. 21 00:00:42,990 --> 00:00:45,030 Jadi C dilengkapi dengan beberapa terbina dalam jenis data. 22 00:00:45,030 --> 00:00:46,972 Dan mari kita membiasakan diri dengan beberapa daripada mereka. 23 00:00:46,972 --> 00:00:50,180 Dan kemudian selepas itu kami juga akan bercakap sedikit mengenai beberapa jenis data 24 00:00:50,180 --> 00:00:54,450 bahawa kita telah ditulis untuk anda, supaya anda boleh menggunakannya dalam CS50. 25 00:00:54,450 --> 00:00:56,130 >> Yang pertama adalah int. 26 00:00:56,130 --> 00:00:59,110 Jenis int data adalah digunakan untuk pembolehubah yang akan menyimpan nilai integer. 27 00:00:59,110 --> 00:01:03,210 Jadi 1, 2, 3, negatif 1, 2, 3, dan sebagainya. 28 00:01:03,210 --> 00:01:05,960 Bilangan bulat, yang adalah sesuatu yang anda harus ingat untuk kuiz, 29 00:01:05,960 --> 00:01:09,590 sentiasa mengambil empat bait memori, yang adalah 32 bit. 30 00:01:09,590 --> 00:01:11,620 Terdapat lapan bit dalam satu bait. 31 00:01:11,620 --> 00:01:14,470 >> Jadi ini bermakna bahawa pelbagai nilai-nilai yang integer boleh menyimpan 32 00:01:14,470 --> 00:01:19,130 adalah terhad oleh apa yang boleh muat dalam 32 bit bernilai maklumat. 33 00:01:19,130 --> 00:01:21,850 Sekarang kerana ia ternyata, sudah lama memutuskan 34 00:01:21,850 --> 00:01:24,310 bahawa kita akan berpecah yang pelbagai 32 bit 35 00:01:24,310 --> 00:01:26,650 ke dalam bilangan bulat negatif dan bilangan bulat positif, 36 00:01:26,650 --> 00:01:28,390 setiap babak mendapat julat. 37 00:01:28,390 --> 00:01:32,230 Oleh itu, julat nilai yang diwakili dengan pelbagai integer daripada negatif 2 38 00:01:32,230 --> 00:01:36,520 kepada kuasa 31 2 hingga kuasa 31 tolak 1, 39 00:01:36,520 --> 00:01:38,190 menyebabkan anda juga perlu tempat untuk 0. 40 00:01:38,190 --> 00:01:41,650 >> Jadi, pada asasnya separuh daripada nilai yang mungkin anda boleh menyesuaikan int adalah negatif, 41 00:01:41,650 --> 00:01:42,610 setengah adalah positif. 42 00:01:42,610 --> 00:01:47,270 Dan kira-kira di sini, ini adalah kira-kira negatif 2 bilion kepada kira-kira positif 2 bilion. 43 00:01:47,270 --> 00:01:50,207 Memberi atau mengambil masa beberapa ratus juta. 44 00:01:50,207 --> 00:01:52,290 Jadi itulah yang anda boleh muat dalam satu pembolehubah integer. 45 00:01:52,290 --> 00:01:55,490 Sekarang kita juga mempunyai sesuatu dipanggil integer tidak ditandatangani. 46 00:01:55,490 --> 00:01:59,220 Sekarang ints tidak ditandatangani bukan adalah jenis berasingan berubah-ubah. 47 00:01:59,220 --> 00:02:01,590 Sebaliknya, tidak ditandatangani adalah apa yang dipanggil pusingan kelayakan. 48 00:02:01,590 --> 00:02:04,990 Ia mengubah data jenis integer sedikit. 49 00:02:04,990 --> 00:02:07,850 >> Dan dalam kes ini, apa yang tidak ditandatangani ertinya- dan anda juga boleh 50 00:02:07,850 --> 00:02:11,530 menggunakan tidak ditandatangani jenis data yang lain, integer bukan satu-satunya. 51 00:02:11,530 --> 00:02:15,310 Apa yang berkesan tidak adalah beregu julat nilai-nilai positif 52 00:02:15,310 --> 00:02:19,350 yang integer boleh mengambil di perbelanjaan tidak lagi membenarkan 53 00:02:19,350 --> 00:02:21,140 anda untuk mengambil nilai-nilai negatif. 54 00:02:21,140 --> 00:02:25,400 Jadi jika anda mempunyai nombor yang anda tahu akan mendapatkan lebih tinggi daripada 2 bilion tetapi kurang 55 00:02:25,400 --> 00:02:31,280 daripada 4 bilion, untuk example-- yang adalah 2 hingga 32 yang kuasa- 56 00:02:31,280 --> 00:02:33,330 anda mungkin mahu menggunakan int tidak ditandatangani jika anda 57 00:02:33,330 --> 00:02:35,050 tahu nilai anda tidak akan menjadi negatif. 58 00:02:35,050 --> 00:02:37,216 >> Kadang-kadang anda akan mempunyai digunakan untuk pembolehubah tidak ditandatangani 59 00:02:37,216 --> 00:02:39,460 dalam CS50, itulah sebabnya saya menyebut di sini. 60 00:02:39,460 --> 00:02:43,830 Tetapi sekali lagi, julat nilai yang boleh mewakili dengan integer tak bertanda 61 00:02:43,830 --> 00:02:48,240 sebagai untuk t integer biasa, adalah 0 2 kuasa 32 tolak 1, 62 00:02:48,240 --> 00:02:50,840 atau kira-kira 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 Jadi, anda telah berkesan dua kali ganda pelbagai positif bahawa anda boleh muat, 64 00:02:53,730 --> 00:02:56,270 tetapi anda sudah meninggalkan semua nilai-nilai negatif. 65 00:02:56,270 --> 00:03:00,040 >> Sekarang sebagai diketepikan, tidak ditandatangani bukan satu-satunya kelayakan 66 00:03:00,040 --> 00:03:01,790 agar kita dapat melihat untuk jenis data yang berubah-ubah. 67 00:03:01,790 --> 00:03:05,779 Terdapat beberapa perkara yang dipanggil pendek dan panjang dan malar. 68 00:03:05,779 --> 00:03:07,820 Const kita akan melihat sedikit sedikit kemudian dalam perjalanan. 69 00:03:07,820 --> 00:03:10,830 Pendek dan panjang, kami mungkin tidak akan. 70 00:03:10,830 --> 00:03:12,830 >> Tetapi hanya tahu bahawa ada adalah kelayakan lain. 71 00:03:12,830 --> 00:03:14,080 Tidak ditandatangani bukan satu-satunya. 72 00:03:14,080 --> 00:03:16,596 Tetapi ia adalah satu-satunya kami akan bercakap tentang sekarang. 73 00:03:16,596 --> 00:03:17,310 Begitu tepat sekali. 74 00:03:17,310 --> 00:03:18,393 Oleh itu, kita telah dilindungi integer. 75 00:03:18,393 --> 00:03:19,200 Apa seterusnya? 76 00:03:19,200 --> 00:03:20,130 >> Aksara. 77 00:03:20,130 --> 00:03:23,620 Jadi aksara yang digunakan untuk pembolehubah yang akan menyimpan aksara tunggal. 78 00:03:23,620 --> 00:03:24,850 Char pendek untuk watak. 79 00:03:24,850 --> 00:03:27,870 Dan kadang-kadang anda mungkin mendengar yang menyebutnya sebagai kereta. 80 00:03:27,870 --> 00:03:32,020 >> Jadi aksara sentiasa mengambil salah satu bait memori, yang hanya 8 bit. 81 00:03:32,020 --> 00:03:35,700 Jadi ini bermakna bahawa mereka hanya boleh muat nilai-nilai dalam lingkungan negatif 2 82 00:03:35,700 --> 00:03:42,430 kuasa yang ketujuh, atau negatif 128, untuk 2 kuasa 7 tolak 1, atau 127. 83 00:03:42,430 --> 00:03:45,710 >> Terima kasih kepada ASCII, ia sebulan yang lalu telah memilih cara yang 84 00:03:45,710 --> 00:03:50,805 untuk memetakan nombor-nombor positif daripada 0-127 untuk pelbagai watak 85 00:03:50,805 --> 00:03:52,182 bahawa semua wujud pada keyboard kita. 86 00:03:52,182 --> 00:03:54,640 Jadi seperti yang kita akan lihat kemudian dalam kursus ini, dan anda akan mungkin 87 00:03:54,640 --> 00:03:57,700 datang untuk menghafal beberapa titik, modal A, untuk example-- 88 00:03:57,700 --> 00:04:00,732 modal watak A-- maps kepada bilangan 65. 89 00:04:00,732 --> 00:04:02,940 Dan sebab itulah kerana itulah apa yang ia 90 00:04:02,940 --> 00:04:05,490 telah diberikan oleh piawaian ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Huruf kecil adalah 97. 92 00:04:07,850 --> 00:04:11,900 Watak 0 untuk apabila anda sebenarnya menaip watak, tidak 93 00:04:11,900 --> 00:04:13,532 mewakili bilangan sifar, adalah 48. 94 00:04:13,532 --> 00:04:15,240 Anda akan belajar pasangan ini sebagai anda pergi. 95 00:04:15,240 --> 00:04:17,990 Dan anda pasti akan datang ke perlukan mereka sedikit kemudian dalam CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Seterusnya jenis data utama terapung nombor mata. 98 00:04:23,390 --> 00:04:26,100 Jadi nombor titik terapung adalah juga dikenali sebagai nombor nyata. 99 00:04:26,100 --> 00:04:28,850 Mereka pada dasarnya nombor yang mempunyai titik perpuluhan di dalamnya. 100 00:04:28,850 --> 00:04:33,360 Mata yang terapung seperti bilangan bulat juga 101 00:04:33,360 --> 00:04:36,090 yang terkandung dalam 4 bait ingatan. 102 00:04:36,090 --> 00:04:37,580 Sekarang tidak ada carta di sini. 103 00:04:37,580 --> 00:04:40,890 Tidak ada garis nombor, kerana menerangkan pelbagai apungan 104 00:04:40,890 --> 00:04:44,550 tidak betul-betul jelas atau intuitif. 105 00:04:44,550 --> 00:04:47,350 >> Cukup untuk mengatakan anda mempunyai 32 bit untuk bekerja dengan. 106 00:04:47,350 --> 00:04:49,730 Dan jika anda mempunyai sejumlah seperti pi, yang mempunyai 107 00:04:49,730 --> 00:04:55,510 bahagian integer 3, dan terapung yang bahagian mata, atau sebahagian perpuluhan 0,14159, 108 00:04:55,510 --> 00:04:58,735 dan sebagainya, anda perlu dapat mewakili semua kitab itu 109 00:04:58,735 --> 00:05:02,420 bahagian integer dan bahagian perpuluhan. 110 00:05:02,420 --> 00:05:04,550 >> Jadi, apa yang anda berfikir bahawa mungkin bermakna? 111 00:05:04,550 --> 00:05:08,180 Satu perkara ialah jika perpuluhan sebahagian mendapat lebih panjang dan lebih lama, 112 00:05:08,180 --> 00:05:10,660 jika saya mempunyai yang sangat besar bahagian integer, aku jangan 113 00:05:10,660 --> 00:05:13,090 dapat menjadi seperti tepat dengan bahagian perpuluhan. 114 00:05:13,090 --> 00:05:15,280 Dan itu benar-benar had apungan. 115 00:05:15,280 --> 00:05:17,229 >> Pelampung mempunyai masalah ketepatan. 116 00:05:17,229 --> 00:05:19,270 Kami hanya mempunyai 32 bit untuk bekerja dengan, jadi kami hanya boleh 117 00:05:19,270 --> 00:05:22,510 begitu tepat dengan bahagian perpuluhan kami. 118 00:05:22,510 --> 00:05:27,300 Kita tidak boleh semestinya mempunyai perpuluhan sebahagian tepat kepada 100 atau 200 digit, 119 00:05:27,300 --> 00:05:29,710 kerana kita hanya mempunyai 32 bit untuk bekerja dengan. 120 00:05:29,710 --> 00:05:31,590 Jadi itu adalah satu had apungan. 121 00:05:31,590 --> 00:05:33,590 >> Kini nasib baik ada jenis data lain yang dipanggil 122 00:05:33,590 --> 00:05:36,530 dua kali, yang agak berkaitan dengan masalah ini. 123 00:05:36,530 --> 00:05:39,980 Beregu, seperti kereta berhias, juga digunakan untuk menyimpan nombor nyata, atau titik terapung 124 00:05:39,980 --> 00:05:40,840 nilai-nilai. 125 00:05:40,840 --> 00:05:44,340 Perbezaannya ialah beregu adalah ketepatan berganda. 126 00:05:44,340 --> 00:05:48,177 Mereka boleh memuatkan 64 bit data, atau lapan bait. 127 00:05:48,177 --> 00:05:49,010 Apa maksudnya? 128 00:05:49,010 --> 00:05:51,801 Baik, ia bermakna kita boleh menjadi lebih banyak tepat dengan titik perpuluhan. 129 00:05:51,801 --> 00:05:54,830 Daripada perlu pi tujuh tempat-tempat yang mungkin, dengan apungan, 130 00:05:54,830 --> 00:05:56,710 kita mungkin boleh mempunyai hingga 30 tempat. 131 00:05:56,710 --> 00:05:59,824 Jika itu yang penting, anda mungkin mahu menggunakan dua daripada apungan. 132 00:05:59,824 --> 00:06:01,740 Pada asasnya, jika anda berada mengusahakan apa-apa di mana 133 00:06:01,740 --> 00:06:06,540 mempunyai tempat yang benar-benar panjang perpuluhan dan banyak ketepatan adalah penting, 134 00:06:06,540 --> 00:06:08,630 anda mungkin ingin menggunakan overfloat berganda. 135 00:06:08,630 --> 00:06:11,250 Sekarang untuk kebanyakan kerja anda dalam CS50, apungan sudah memadai. 136 00:06:11,250 --> 00:06:15,340 Tetapi tahu bahawa beregu wujud sebagai cara untuk agak menangani ketepatan 137 00:06:15,340 --> 00:06:20,980 masalah dengan memberi anda tambahan 32 bit untuk bekerja dengan untuk nombor anda. 138 00:06:20,980 --> 00:06:23,650 >> Sekarang ini bukanlah satu jenis data. 139 00:06:23,650 --> 00:06:24,390 Ini adalah jenis. 140 00:06:24,390 --> 00:06:25,340 Dan ia dipanggil tidak sah. 141 00:06:25,340 --> 00:06:27,506 Dan saya bercakap mengenainya di sini kerana kita ada mungkin 142 00:06:27,506 --> 00:06:29,520 dilihat beberapa kali sudah dalam CS50. 143 00:06:29,520 --> 00:06:32,020 Dan anda mungkin tertanya-tanya apa itu semua kira-kira. 144 00:06:32,020 --> 00:06:33,390 >> Jadi tidak sah adalah jenis. 145 00:06:33,390 --> 00:06:34,097 Ia tidak wujud. 146 00:06:34,097 --> 00:06:35,180 Tetapi ia bukan satu jenis data. 147 00:06:35,180 --> 00:06:39,350 >> Kita tidak boleh membuat pembolehubah jenis tidak sah dan menetapkan nilai kepadanya. 148 00:06:39,350 --> 00:06:42,519 Tetapi fungsi, sebagai contoh, boleh mempunyai jenis pulangan tidak sah. 149 00:06:42,519 --> 00:06:45,060 Pada asasnya, jika anda melihat fungsi yang mempunyai jenis pulangan tidak sah, 150 00:06:45,060 --> 00:06:46,970 ia bermakna ia tidak mengembalikan nilai. 151 00:06:46,970 --> 00:06:49,440 Bolehkah anda memikirkan yang sama fungsi yang kami telah digunakan setakat ini 152 00:06:49,440 --> 00:06:52,780 dalam CS50 yang tidak mengembalikan nilai? 153 00:06:52,780 --> 00:06:54,700 >> Printf adalah satu. 154 00:06:54,700 --> 00:06:56,820 Printf tidak sebenarnya kembali apa-apa kepada anda. 155 00:06:56,820 --> 00:06:59,850 Ia mencetak sesuatu kepada menyaring, dan ia pada dasarnya 156 00:06:59,850 --> 00:07:01,650 kesan sampingan daripada apa printf tidak. 157 00:07:01,650 --> 00:07:03,620 Tetapi ia tidak memberi anda nilai yang kembali. 158 00:07:03,620 --> 00:07:08,419 Anda tidak menangkap hasil dan stor dalam beberapa pembolehubah untuk menggunakannya di kemudian hari. 159 00:07:08,419 --> 00:07:10,710 Ia hanya mencetak sesuatu untuk skrin dan anda selesai. 160 00:07:10,710 --> 00:07:14,360 >> Oleh itu, kita mengatakan bahawa printf adalah fungsi tidak sah. 161 00:07:14,360 --> 00:07:16,450 Ia mengembalikan apa-apa. 162 00:07:16,450 --> 00:07:18,580 >> Senarai di perimeter fungsi juga boleh menjadi tidak sah. 163 00:07:18,580 --> 00:07:21,410 Dan anda juga telah melihat bahawa agak sedikit dalam CS50 juga. 164 00:07:21,410 --> 00:07:22,300 Sah utama Int. 165 00:07:22,300 --> 00:07:23,260 Adakah itu membunyikan loceng? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Pada asasnya apa yang bermakna adalah bahawa utama tidak mengambil apa-apa parameter. 168 00:07:27,220 --> 00:07:29,520 Tidak ada hujah bahawa Dapatkan berlalu ke dalam utama. 169 00:07:29,520 --> 00:07:32,780 Sekarang kemudian kita akan melihat bahawa terdapat cara untuk lulus hujah ke dalam utama, 170 00:07:32,780 --> 00:07:36,189 tetapi setakat ini apa yang kita ada dilihat adalah tidak sah utama int. 171 00:07:36,189 --> 00:07:37,730 Utama hanya tidak mengambil apa-apa hujah. 172 00:07:37,730 --> 00:07:40,236 Dan supaya kita menentukan bahawa dengan mengatakan tidak sah. 173 00:07:40,236 --> 00:07:42,110 Kami hanya yang sangat yang jelas tentang hakikat 174 00:07:42,110 --> 00:07:44,430 bahawa ia tidak mengambil apa-apa hujah. 175 00:07:44,430 --> 00:07:47,160 >> Jadi buat masa ini, cukuplah untuk mengatakan tidak sah yang pada dasarnya 176 00:07:47,160 --> 00:07:50,789 hanya perlu bertindak sebagai pemegang tempat yang untuk anda kerana memikirkan kerana apa-apa. 177 00:07:50,789 --> 00:07:52,080 Ia tidak benar-benar melakukan apa-apa. 178 00:07:52,080 --> 00:07:53,550 Tidak ada nilai pulangan sini. 179 00:07:53,550 --> 00:07:54,770 Tidak ada parameter di sini. 180 00:07:54,770 --> 00:07:55,709 Ia adalah tidak sah. 181 00:07:55,709 --> 00:07:57,250 Ia kompleks lebih sedikit daripada itu. 182 00:07:57,250 --> 00:08:00,640 Tetapi ini sudah memadai untuk bahagian yang lebih baik kursus. 183 00:08:00,640 --> 00:08:05,010 Dan mudah-mudahan sekarang anda mempunyai sedikit sedikit lebih kepada konsep apa yang tidak sah adalah. 184 00:08:05,010 --> 00:08:08,460 >> Jadi mereka adalah lima jenis anda akan pertemuan yang terbina dalam untuk C. 185 00:08:08,460 --> 00:08:10,670 Tetapi dalam CS50 kami juga mempunyai perpustakaan. 186 00:08:10,670 --> 00:08:13,550 CS50.h, yang anda boleh termasuk. 187 00:08:13,550 --> 00:08:15,930 Dan yang akan memberikan anda dengan dua jenis tambahan 188 00:08:15,930 --> 00:08:18,280 bahawa anda mungkin akan dapat untuk digunakan pada tugasan anda, 189 00:08:18,280 --> 00:08:21,210 atau hanya bekerja secara amnya pengaturcaraan. 190 00:08:21,210 --> 00:08:23,030 >> Yang pertama ini adalah bool. 191 00:08:23,030 --> 00:08:26,780 Jadi jenis data Boolean, bool, digunakan untuk pembolehubah 192 00:08:26,780 --> 00:08:28,114 yang akan menyimpan nilai Boolean. 193 00:08:28,114 --> 00:08:29,863 Jika anda pernah mendengar istilah ini sebelum ini, anda 194 00:08:29,863 --> 00:08:31,960 mengetahui bahawa Boolean yang Nilai mampu sahaja 195 00:08:31,960 --> 00:08:34,440 memegang dua nilai yang berbeza berbeza. 196 00:08:34,440 --> 00:08:35,872 Benar dan palsu. 197 00:08:35,872 --> 00:08:37,580 Sekarang ini kelihatan agak asas, bukan? 198 00:08:37,580 --> 00:08:40,496 Ia adalah jenis kejutan ini tidak wujud dalam C kerana ia terbina dalam. 199 00:08:40,496 --> 00:08:42,640 Dan dalam banyak bahasa moden, sudah tentu, Booleans 200 00:08:42,640 --> 00:08:45,390 adalah standard jenis data lalai. 201 00:08:45,390 --> 00:08:47,192 Tetapi dalam C, mereka benar-benar tidak. 202 00:08:47,192 --> 00:08:48,400 Tetapi kita telah membuat untuk anda. 203 00:08:48,400 --> 00:08:51,910 Jadi, jika anda merasa perlu untuk mewujudkan pembolehubah yang jenis adalah bool, 204 00:08:51,910 --> 00:08:55,230 hanya pastikan anda # include CS50.h pada awal program anda, 205 00:08:55,230 --> 00:08:57,800 dan anda akan dapat mewujudkan pembolehubah jenis bool itu. 206 00:08:57,800 --> 00:09:02,095 >> Jika anda terlupa untuk # include CS50.h, dan anda mula menggunakan pembolehubah Boolean-jenis, 207 00:09:02,095 --> 00:09:04,970 anda mungkin menghadapi beberapa masalah apabila anda menyusun program anda. 208 00:09:04,970 --> 00:09:06,490 Jadi hanya berada di mencari untuk itu. 209 00:09:06,490 --> 00:09:11,180 Dan mungkin anda hanya boleh menetapkan masalah dengan pound termasuk CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Yang lain jenis data utama yang kita menyediakan untuk anda di perpustakaan CS50 211 00:09:14,590 --> 00:09:15,670 adalah tali. 212 00:09:15,670 --> 00:09:17,130 Jadi apa rentetan? 213 00:09:17,130 --> 00:09:18,520 Rentetan adalah benar-benar hanya kata-kata. 214 00:09:18,520 --> 00:09:20,000 Mereka koleksi watak. 215 00:09:20,000 --> 00:09:20,640 Mereka kata-kata. 216 00:09:20,640 --> 00:09:21,390 Mereka ayat. 217 00:09:21,390 --> 00:09:22,480 Mereka perenggan. 218 00:09:22,480 --> 00:09:25,850 Mungkin buku keseluruhan, walaupun. 219 00:09:25,850 --> 00:09:29,690 >> Yang singkat untuk masa yang lama siri watak. 220 00:09:29,690 --> 00:09:34,310 Jika anda perlu menggunakan tali, sebagai contoh, untuk menyimpan kata, 221 00:09:34,310 --> 00:09:37,609 hanya pastikan untuk memasukkan CS50.h pada awal program anda 222 00:09:37,609 --> 00:09:38,900 supaya anda boleh menggunakan jenis tali. 223 00:09:38,900 --> 00:09:43,910 Dan kemudian anda boleh membuat pembolehubah yang jenis data adalah tali. 224 00:09:43,910 --> 00:09:46,160 Sekarang di kemudian hari dalam perjalanan, kita juga akan melihat bahawa itulah 225 00:09:46,160 --> 00:09:47,752 bukan keseluruhan cerita, sama ada. 226 00:09:47,752 --> 00:09:49,460 Kami akan menghadapi perkara dipanggil struktur, 227 00:09:49,460 --> 00:09:54,249 yang membolehkan anda untuk kumpulan apa yang mungkin integer dan rentetan ke dalam satu unit. 228 00:09:54,249 --> 00:09:56,290 Dan kita boleh menggunakan bahawa untuk beberapa tujuan, yang mungkin 229 00:09:56,290 --> 00:09:57,750 sangat berguna di kemudian hari dalam perjalanan. 230 00:09:57,750 --> 00:09:59,500 >> Dan kita juga akan belajar mengenai jenis ditakrifkan, 231 00:09:59,500 --> 00:10:01,720 yang membolehkan anda untuk membuat jenis data anda sendiri. 232 00:10:01,720 --> 00:10:03,060 Kami tidak perlu bimbang tentang itu buat masa sekarang. 233 00:10:03,060 --> 00:10:04,550 Tetapi hanya tahu bahawa itulah sesuatu di kaki langit, 234 00:10:04,550 --> 00:10:07,633 bahawa ada banyak lagi untuk keseluruhan ini jenis perkara daripada saya memberitahu anda hanya 235 00:10:07,633 --> 00:10:08,133 sekarang. 236 00:10:08,133 --> 00:10:10,591 Jadi sekarang kita telah belajar sedikit mengenai data asas 237 00:10:10,591 --> 00:10:14,230 jenis dan jenis data CS50, mari kita bercakap tentang bagaimana untuk bekerja dengan pembolehubah 238 00:10:14,230 --> 00:10:18,530 dan membuat mereka menggunakan ini jenis data dalam program-program kami. 239 00:10:18,530 --> 00:10:22,670 Jika anda ingin membuat pembolehubah, semua yang anda perlu lakukan adalah dua perkara. 240 00:10:22,670 --> 00:10:24,147 >> Pertama, anda perlu memberikan jenis. 241 00:10:24,147 --> 00:10:26,230 Perkara kedua yang perlu lakukan adalah memberikan nama. 242 00:10:26,230 --> 00:10:28,740 Sebaik sahaja anda telah melakukan itu dan menampar seorang koma bernoktah di hujung talian itu, 243 00:10:28,740 --> 00:10:29,830 anda telah membuat pembolehubah. 244 00:10:29,830 --> 00:10:32,370 >> Jadi di sini adalah dua contoh. 245 00:10:32,370 --> 00:10:35,744 Nombor Int; surat char ;. 246 00:10:35,744 --> 00:10:36,660 Apa yang telah saya lakukan di sini? 247 00:10:36,660 --> 00:10:38,110 Saya telah membuat dua pembolehubah. 248 00:10:38,110 --> 00:10:40,190 >> Yang pertama, pembolehubah ini Nama nombor. 249 00:10:40,190 --> 00:10:44,830 Dan bilangan mampu memegang integer menaip nilai, kerana jenis adalah int. 250 00:10:44,830 --> 00:10:48,040 Surat adalah pembolehubah lain yang boleh memegang watak-watak 251 00:10:48,040 --> 00:10:50,240 kerana jenis data adalah char. 252 00:10:50,240 --> 00:10:51,772 >> Cukup mudah, bukan? 253 00:10:51,772 --> 00:10:53,480 Jika anda mendapati diri dalam keadaan di mana 254 00:10:53,480 --> 00:10:56,250 anda perlu membuat beberapa pembolehubah dari jenis yang sama, 255 00:10:56,250 --> 00:10:58,740 anda hanya perlu untuk menentukan nama jenis sekali. 256 00:10:58,740 --> 00:11:01,600 Kemudian hanya menyenaraikan seberapa banyak pembolehubah jenis itu yang anda perlukan. 257 00:11:01,600 --> 00:11:04,230 >> Jadi saya boleh bagi contoh, di sini di baris ini pertiga daripada kod, 258 00:11:04,230 --> 00:11:07,420 mengatakan ketinggian int ;, barisan baru. 259 00:11:07,420 --> 00:11:08,291 Lebar Int ;. 260 00:11:08,291 --> 00:11:09,290 Dan yang akan bekerja juga. 261 00:11:09,290 --> 00:11:12,039 Saya masih mendapat dua pembolehubah dipanggil ketinggian dan lebar, setiap yang 262 00:11:12,039 --> 00:11:12,730 integer. 263 00:11:12,730 --> 00:11:16,970 Tetapi saya dibenarkan, perkara yang perlu C sintaksis, menyatukan ke dalam satu baris. 264 00:11:16,970 --> 00:11:20,230 Ketinggian Int, lebar; Ia adalah perkara yang sama. 265 00:11:20,230 --> 00:11:23,900 Saya telah membuat dua pembolehubah, satu dipanggil ketinggian satu dipanggil lebar, kedua-duanya 266 00:11:23,900 --> 00:11:26,730 mampu pegangan Nilai jenis integer. 267 00:11:26,730 --> 00:11:30,920 >> Begitu juga di sini, saya boleh membuat tiga mata yang terapung sekaligus. 268 00:11:30,920 --> 00:11:33,350 Saya mungkin boleh mencipta pembolehubah dipanggil punca kuasa dua 2-- 269 00:11:33,350 --> 00:11:35,766 yang mungkin akan akhirnya memegang point-- terapung 270 00:11:35,766 --> 00:11:39,222 bahawa perwakilan dataran akar 2-- punca kuasa dua 3, dan pi. 271 00:11:39,222 --> 00:11:41,180 Saya boleh melakukan ini tiga barisan yang berasingan. 272 00:11:41,180 --> 00:11:47,690 Float, punca kuasa dua 2; Float punca kuasa 3; terapung pi; dan yang akan bekerja juga. 273 00:11:47,690 --> 00:11:50,590 >> Tetapi sekali lagi, saya hanya boleh menyatukan ini ke dalam satu baris kod. 274 00:11:50,590 --> 00:11:54,050 Membuat perkara yang sedikit lebih pendek, bukan sebagai clunky. 275 00:11:54,050 --> 00:11:57,259 >> Sekarang secara umum, ia adalah reka bentuk yang baik untuk hanya mengisytiharkan pembolehubah apabila anda memerlukannya. 276 00:11:57,259 --> 00:11:59,050 Dan kita akan bercakap sedikit sedikit lebih lanjut mengenai itu 277 00:11:59,050 --> 00:12:00,945 kemudian dalam perjalanan apabila kita membincangkan skop. 278 00:12:00,945 --> 00:12:03,320 Jadi tidak semestinya perlu membuat semua pembolehubah anda 279 00:12:03,320 --> 00:12:05,990 pada awal program ini, yang sesetengah orang mungkin telah dilakukan masa lalu, 280 00:12:05,990 --> 00:12:08,700 atau memang satu perkara biasa amalan pengekodan tahun yang lalu 281 00:12:08,700 --> 00:12:11,700 apabila bekerja dengan C. Anda mungkin hanya ingin membuat betul berubah apabila 282 00:12:11,700 --> 00:12:13,140 anda memerlukannya. 283 00:12:13,140 --> 00:12:13,640 Baiklah. 284 00:12:13,640 --> 00:12:15,150 Oleh itu, kita telah mencipta pembolehubah. 285 00:12:15,150 --> 00:12:16,790 Bagaimana kita menggunakannya? 286 00:12:16,790 --> 00:12:18,650 Selepas kami mengisytiharkan berubah-ubah, kita tidak perlu 287 00:12:18,650 --> 00:12:21,237 untuk menentukan jenis data pembolehubah itu lagi. 288 00:12:21,237 --> 00:12:24,070 Malah, jika anda berbuat demikian, anda mungkin berakhir dengan beberapa kesan pelik 289 00:12:24,070 --> 00:12:25,490 yang kita jenis akan menyembunyikan buat masa ini. 290 00:12:25,490 --> 00:12:27,365 Tetapi memadai untuk mengatakan, perkara pelik akan 291 00:12:27,365 --> 00:12:30,740 untuk mula berlaku jika anda secara tidak sengaja semula mengisytiharkan-pembolehubah dengan nama yang sama 292 00:12:30,740 --> 00:12:32,210 lagi dan lagi. 293 00:12:32,210 --> 00:12:33,882 >> Jadi di sini saya mempunyai empat baris kod. 294 00:12:33,882 --> 00:12:36,090 Dan saya mempunyai beberapa Komen sana hanya menunjukkan 295 00:12:36,090 --> 00:12:37,840 apa yang berlaku di setiap baris hanya untuk membantu 296 00:12:37,840 --> 00:12:40,520 anda mendapat terletak dalam apa yang sedang berlaku. 297 00:12:40,520 --> 00:12:41,520 Nombor Jadi int ;. 298 00:12:41,520 --> 00:12:42,520 Anda melihat bahawa sebelum ini. 299 00:12:42,520 --> 00:12:44,000 Itu satu pengisytiharan pembolehubah. 300 00:12:44,000 --> 00:12:46,670 >> Saya kini telah mencipta pembolehubah dipanggil nombor itu 301 00:12:46,670 --> 00:12:48,970 mampu memegang nilai integer-jenis. 302 00:12:48,970 --> 00:12:50,210 Saya telah diisytiharkan itu. 303 00:12:50,210 --> 00:12:53,770 >> Barisan seterusnya saya memberikan nilai kepada nombor. 304 00:12:53,770 --> 00:12:54,992 Nombor sama 17. 305 00:12:54,992 --> 00:12:55,950 Apa yang berlaku di sana? 306 00:12:55,950 --> 00:12:58,880 Saya meletakkan jumlah 17 dalam pembolehubah itu. 307 00:12:58,880 --> 00:13:02,760 >> Jadi, jika saya pernah kemudian mencetak apa kandungan jumlah yang di kemudian hari, 308 00:13:02,760 --> 00:13:04,030 mereka akan memberitahu saya ia adalah 17. 309 00:13:04,030 --> 00:13:07,030 Jadi saya telah mengisytiharkan pembolehubah, dan kemudian saya telah diberikan itu. 310 00:13:07,030 --> 00:13:10,570 >> Kita boleh mengulangi proses tersebut lagi dengan surat char ;. 311 00:13:10,570 --> 00:13:11,640 Itulah perisytiharan. 312 00:13:11,640 --> 00:13:14,010 Surat sama ibu H. Itulah tugasan. 313 00:13:14,010 --> 00:13:16,030 Cukup mudah juga. 314 00:13:16,030 --> 00:13:18,319 >> Sekarang proses ini mungkin seolah-olah jenis bodoh. 315 00:13:18,319 --> 00:13:20,110 Mengapa kami lakukan ini dalam dua baris kod? 316 00:13:20,110 --> 00:13:21,401 Adakah terdapat cara yang lebih baik untuk melakukannya? 317 00:13:21,401 --> 00:13:22,250 Malah, ada. 318 00:13:22,250 --> 00:13:24,375 Kadang-kadang anda mungkin melihat ini dipanggil pengawalan. 319 00:13:24,375 --> 00:13:28,446 Ia adalah apabila anda mengisytiharkan pembolehubah dan menetapkan nilai pada masa yang sama. 320 00:13:28,446 --> 00:13:30,320 Ini sebenarnya yang cukup perkara biasa yang perlu dilakukan. 321 00:13:30,320 --> 00:13:32,870 Apabila anda membuat pembolehubah, anda biasanya mahu ia mempunyai beberapa nilai asas. 322 00:13:32,870 --> 00:13:34,330 Walaupun ia adalah 0 atau sesuatu. 323 00:13:34,330 --> 00:13:36,180 Anda hanya anda memberikan nilai. 324 00:13:36,180 --> 00:13:38,360 >> Anda boleh memulakan pembolehubah. 325 00:13:38,360 --> 00:13:42,320 Int jumlah bersamaan 17 adalah sama seperti dua baris pertama kod ke atas. 326 00:13:42,320 --> 00:13:46,829 Surat Char sama h adalah sama seperti yang baris ketiga dan keempat dari kod di atas. 327 00:13:46,829 --> 00:13:49,620 Mengenai restoran paling penting di sini apabila kita mengisytiharkan dan memberikan 328 00:13:49,620 --> 00:13:51,740 pembolehubah adalah selepas kami telah diisytiharkan, notis 329 00:13:51,740 --> 00:13:53,700 Saya tidak menggunakan jenis data lagi. 330 00:13:53,700 --> 00:13:57,916 Saya tidak mengatakan jumlah int bersamaan 17 pada baris kedua kod, sebagai contoh. 331 00:13:57,916 --> 00:13:59,290 Saya hanya berkata jumlah bersamaan 17. 332 00:13:59,290 --> 00:14:02,537 >> Sekali lagi,-mengisytiharkan semula pembolehubah selepas anda telah mengisytiharkan ia boleh membawa 333 00:14:02,537 --> 00:14:03,620 kepada beberapa akibat pelik. 334 00:14:03,620 --> 00:14:05,950 Jadi hanya berhati-hati itu. 335 00:14:05,950 --> 00:14:06,660 >> Saya Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Dan ini adalah CS50. 337 00:14:08,870 --> 00:14:10,499