1 00:00:00,000 --> 00:00:02,420 >> [Muusika mängib] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 SPEAKER: Okei. 4 00:00:05,980 --> 00:00:08,540 Nii räägime teine asi, mis on omamoodi unikaalne C, 5 00:00:08,540 --> 00:00:10,010 mis on andmetüübid ja muutujad. 6 00:00:10,010 --> 00:00:12,340 Kui ma ütlen unikaalne C, ma tõesti tähenda ainult kontekstis, 7 00:00:12,340 --> 00:00:14,470 kui olete olnud programmeerija jaoks väga palju aega, 8 00:00:14,470 --> 00:00:16,270 oled ilmselt ei töötanud andmetüübid 9 00:00:16,270 --> 00:00:18,470 Kui oled kasutanud kaasaegseid programmeerimiskeeli. 10 00:00:18,470 --> 00:00:20,432 Modern keelte nagu PHP ja JavaScript, 11 00:00:20,432 --> 00:00:22,640 mis me ka näha natuke Hiljem käigus, 12 00:00:22,640 --> 00:00:25,550 sa tegelikult ei pea täpsustada andmed tüüpi muutuja 13 00:00:25,550 --> 00:00:26,270 kui sa seda kasutada. 14 00:00:26,270 --> 00:00:28,067 >> Sa lihtsalt kuulutada ja seda kasutama hakata. 15 00:00:28,067 --> 00:00:29,900 Kui see on täisarv, siis tean, et see täisarv. 16 00:00:29,900 --> 00:00:31,960 Kui see on märk, et see on teab, et see on märk. 17 00:00:31,960 --> 00:00:35,320 Kui see on sõna, see teab see on string, nn. 18 00:00:35,320 --> 00:00:37,300 >> Aga C, mis on vanemate keel, peame 19 00:00:37,300 --> 00:00:39,420 täpsustada andmeid tüüpi iga muutuja 20 00:00:39,420 --> 00:00:42,990 et me loome esmakordselt et me kasutame, et muutuv. 21 00:00:42,990 --> 00:00:45,030 Nii C kaasas mõned Sisseehitatud andmetüüpe. 22 00:00:45,030 --> 00:00:46,972 Ja olgem tutvuda mõned neist. 23 00:00:46,972 --> 00:00:50,180 Ja siis hiljem me ka rääkida natuke mõningate andmete liigid 24 00:00:50,180 --> 00:00:54,450 et me oleme kirjutatud teile, nii et saate neid kasutada CS50. 25 00:00:54,450 --> 00:00:56,130 >> Esimene on int. 26 00:00:56,130 --> 00:00:59,110 Int andmetüüpi kasutatakse muutujate mis salvestab täisarve. 27 00:00:59,110 --> 00:01:03,210 Nii 1, 2, 3, negatiivne 1, 2, 3, ja nii edasi. 28 00:01:03,210 --> 00:01:05,960 Täisarvud, mis on midagi, mida tuleb meeles pidada viktoriini 29 00:01:05,960 --> 00:01:09,590 alati alustada nelja baiti mälu, mis on 32 bitti. 30 00:01:09,590 --> 00:01:11,620 Seal on kaheksa bitti bait. 31 00:01:11,620 --> 00:01:14,470 >> Nii see tähendab, et valikut väärtustab et täisarv mahutab 32 00:01:14,470 --> 00:01:19,130 on piiratud, mida võib mahtuda 32 bitti väärt informatsiooni. 33 00:01:19,130 --> 00:01:21,850 Nüüd, kui selgub, see oli ammu otsustanud 34 00:01:21,850 --> 00:01:24,310 et meil oleks lahku mis vahemikus 32 bitti 35 00:01:24,310 --> 00:01:26,650 negatiivseks täisarvud ja positiivsed täisarvud, 36 00:01:26,650 --> 00:01:28,390 Iga saan poole ulatuses. 37 00:01:28,390 --> 00:01:32,230 Nii väärtuste vahemik, et me esindame koos täisarv vahemikus negatiivne 2 38 00:01:32,230 --> 00:01:36,520 kuni 31. võimu 2 31. võimu miinus 1, 39 00:01:36,520 --> 00:01:38,190 põhjustada pead ka koht, 0. 40 00:01:38,190 --> 00:01:41,650 >> Nii et põhimõtteliselt poole võimalikud väärtused mahub int on negatiivne, 41 00:01:41,650 --> 00:01:42,610 ja pool on positiivne. 42 00:01:42,610 --> 00:01:47,270 Ja umbes siin, see on umbes negatiivne 2 miljardit positiivseid 2 miljardit. 43 00:01:47,270 --> 00:01:50,207 Anda või võtta paar sada miljonit. 44 00:01:50,207 --> 00:01:52,290 Nii et mida sa mahub in täisarv muutuja. 45 00:01:52,290 --> 00:01:55,490 Nüüd on meil ka midagi nimetatakse täisarv. 46 00:01:55,490 --> 00:01:59,220 Nüüd allkirjastamata ints ei ole Eraldi tüüpi muutuja. 47 00:01:59,220 --> 00:02:01,590 Pigem allkirjastamata on mida nimetatakse täpsustava. 48 00:02:01,590 --> 00:02:04,990 See muudab andmete tüüpi täisarv veidi. 49 00:02:04,990 --> 00:02:07,850 >> Ja sel juhul, mida allkirjastamata means-- ja saate ka 50 00:02:07,850 --> 00:02:11,530 kasuta allkirjastamata teisi andmetüüpe täisarv pole ainus. 51 00:02:11,530 --> 00:02:15,310 Mida see tegelikult teeb, on kahekordistab Positiivse väärtuste vahemik 52 00:02:15,310 --> 00:02:19,350 et täisarv võib võtta aadressil arvelt ei luba enam 53 00:02:19,350 --> 00:02:21,140 sa võtta negatiivseid väärtusi. 54 00:02:21,140 --> 00:02:25,400 Nii et kui teil on numbrid, et sa tead saavad kõrgemad kui 2 miljardit, kuid vähem 55 00:02:25,400 --> 00:02:31,280 kui 4 miljardit eest example-- milleks on 2 kuni 32. power-- 56 00:02:31,280 --> 00:02:33,330 võiksite kasutada allkirjastamata int kui te 57 00:02:33,330 --> 00:02:35,050 tean oma väärtust ei saa kunagi negatiivne. 58 00:02:35,050 --> 00:02:37,216 >> Sul on vahetevahel kasutatud allkirjastamata muutujad 59 00:02:37,216 --> 00:02:39,460 in CS50, mis on põhjus, miks ma mainida siin. 60 00:02:39,460 --> 00:02:43,830 Aga jälle, väärtuste vahemik, et sa võib esindada koos täisarv 61 00:02:43,830 --> 00:02:48,240 kui t regulaarne täisarv, on 0 2 kuni 32. võimu miinus 1, 62 00:02:48,240 --> 00:02:50,840 või umbes 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 Nii et olete tõhusalt kahekordistunud positiivne vahemik, mis mahub, 64 00:02:53,730 --> 00:02:56,270 aga sa oled loobunud kõik negatiivseid väärtusi. 65 00:02:56,270 --> 00:03:00,040 >> Nüüd kui kõrvale, allkirjastamata ei ole ainus täpsustava 66 00:03:00,040 --> 00:03:01,790 et me võiksime näha muutuja tüüpi andmeid. 67 00:03:01,790 --> 00:03:05,779 On ka asju, mida nimetatakse lühike ja pikk ja const. 68 00:03:05,779 --> 00:03:07,820 Const me näeme vähe natuke hiljem muidugi. 69 00:03:07,820 --> 00:03:10,830 Lühike ja pikk, me ilmselt ei ole. 70 00:03:10,830 --> 00:03:12,830 >> Aga tean, et seal on teiste täpsustus. 71 00:03:12,830 --> 00:03:14,080 Unsigned ei ole ainus. 72 00:03:14,080 --> 00:03:16,596 Aga see on ainult üks me räägime kohe. 73 00:03:16,596 --> 00:03:17,310 Nii et kõik õige. 74 00:03:17,310 --> 00:03:18,393 Nii oleme kaetud täisarvud. 75 00:03:18,393 --> 00:03:19,200 Mis edasi? 76 00:03:19,200 --> 00:03:20,130 >> Chars. 77 00:03:20,130 --> 00:03:23,620 Nii tähemärki kasutatakse muutujate mis salvestab ühe tähemärki. 78 00:03:23,620 --> 00:03:24,850 Char on lühike iseloomu. 79 00:03:24,850 --> 00:03:27,870 Ja mõnikord võib kuulda inimesed hääldada nagu auto. 80 00:03:27,870 --> 00:03:32,020 >> Nii tegelased võtavad alati üks bait mälu, mis on vaid 8 bitti. 81 00:03:32,020 --> 00:03:35,700 Nii see tähendab, et neid saab ainult mahtuda väärtuste vahemikku negatiivne 2 82 00:03:35,700 --> 00:03:42,430 seitsmenda võimu, või negatiivse 128, 2 kuni 7. võimu miinus 1 või 127. 83 00:03:42,430 --> 00:03:45,710 >> Tänu ASCII, see oli ammu otsustanud viisil 84 00:03:45,710 --> 00:03:50,805 kaardistada need positiivsed numbrid 0-127 erinevate tähtedega 85 00:03:50,805 --> 00:03:52,182 et kõik on olemas meie klaviatuuri. 86 00:03:52,182 --> 00:03:54,640 Nii nagu me näeme hiljem käigus, ja sa ilmselt 87 00:03:54,640 --> 00:03:57,700 tulevad meelde mõned punkti, kapitali A jaoks example-- 88 00:03:57,700 --> 00:04:00,732 iseloomu kapitali a-- kaardid numbrile 65. 89 00:04:00,732 --> 00:04:02,940 Ja selle põhjuseks on sest see, mida on see 90 00:04:02,940 --> 00:04:05,490 on määratud ASCII standard. 91 00:04:05,490 --> 00:04:07,850 >> Väiksed tähed A on 97. 92 00:04:07,850 --> 00:04:11,900 Iseloomu 0 kui sa tegelikult kirjutad iseloomu, ei 93 00:04:11,900 --> 00:04:13,532 esindavad number null, on 48. 94 00:04:13,532 --> 00:04:15,240 Te õpite paar Nende lähete. 95 00:04:15,240 --> 00:04:17,990 Ja sa kindlasti tulema vaja neid natuke hiljem CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Järgmine suurem andmetüüp on ujukoma numbrid. 98 00:04:23,390 --> 00:04:26,100 Nii ujukoma numbrid tuntud ka kui tegelik arv. 99 00:04:26,100 --> 00:04:28,850 Nad on põhimõtteliselt numbreid on koma neid. 100 00:04:28,850 --> 00:04:33,360 Ujukomaarvutuse väärtused nagu täisarvud ka 101 00:04:33,360 --> 00:04:36,090 sisalduvad 4 baiti mälu. 102 00:04:36,090 --> 00:04:37,580 Nüüd pole mingit skeem siin. 103 00:04:37,580 --> 00:04:40,890 Ei ole number line, sest kirjeldab erinevaid sularahaga 104 00:04:40,890 --> 00:04:44,550 ei ole täpselt selge või intuitiivne. 105 00:04:44,550 --> 00:04:47,350 >> Piisab, kui öelda, et sa on 32 bitti töötada. 106 00:04:47,350 --> 00:04:49,730 Ja kui teil on number nagu pi, mis on 107 00:04:49,730 --> 00:04:55,510 täisarv 3. osa ja ujuva punkti osas, või koma osa 0,14159, 108 00:04:55,510 --> 00:04:58,735 ja nii edasi, sa pead olema suudab esindada kõiki see-- 109 00:04:58,735 --> 00:05:02,420 täisosa ja koma osa. 110 00:05:02,420 --> 00:05:04,550 >> Mis sa arvad, mis võiks tähendada? 111 00:05:04,550 --> 00:05:08,180 Üks asi on see, et kui koma osa läheb kauem ja kauem, 112 00:05:08,180 --> 00:05:10,660 kui mul on väga suur täisosa, ma ei pruugi 113 00:05:10,660 --> 00:05:13,090 suutma olema nii täpsed koos koma osa. 114 00:05:13,090 --> 00:05:15,280 Ja see on tõesti piiramine sularahaga. 115 00:05:15,280 --> 00:05:17,229 >> Ujukid on täpselt probleem. 116 00:05:17,229 --> 00:05:19,270 Meil on ainult 32 bitti töötada, nii et saame ainult 117 00:05:19,270 --> 00:05:22,510 olla nii täpne meie koma osa. 118 00:05:22,510 --> 00:05:27,300 Me ei pea tingimata olema koma osa täpselt 100 või 200 numbrit, 119 00:05:27,300 --> 00:05:29,710 sest meil on ainult 32 bitti töötada. 120 00:05:29,710 --> 00:05:31,590 Nii et see piirang sularahaga. 121 00:05:31,590 --> 00:05:33,590 >> Nüüd õnneks on teise andmete tüübi nimega 122 00:05:33,590 --> 00:05:36,530 double, mis mõnevõrra tegeleb selle probleemiga. 123 00:05:36,530 --> 00:05:39,980 Doubles, nagu ujukite, kasutatakse ka salvestada tegelikku arvu, või ujukoma 124 00:05:39,980 --> 00:05:40,840 väärtusi. 125 00:05:40,840 --> 00:05:44,340 Erinevus on selles, et Paarismängus on kahekordne täpsus. 126 00:05:44,340 --> 00:05:48,177 Nad mahub 64 bitti andmete või kaheksa baiti. 127 00:05:48,177 --> 00:05:49,010 Mida see tähendab? 128 00:05:49,010 --> 00:05:51,801 Noh, see tähendab, et saame olla palju rohkem täpne olla koma. 129 00:05:51,801 --> 00:05:54,830 Selle asemel, pi kuni seitsme kohti võibolla koos sularahaga, 130 00:05:54,830 --> 00:05:56,710 saame võibolla on see, et 30 kohta. 131 00:05:56,710 --> 00:05:59,824 Kui see on oluline, siis võiksite kasutada topelt asemel sularahaga. 132 00:05:59,824 --> 00:06:01,740 Põhimõtteliselt, kui sa oled kallal midagi, kus 133 00:06:01,740 --> 00:06:06,540 võttes tõesti pikk kümnendkohani ja palju täpsus on oluline, 134 00:06:06,540 --> 00:06:08,630 sa ilmselt tahad kasutage kahekordset overfloat. 135 00:06:08,630 --> 00:06:11,250 Nüüd enamiku oma tööd CS50, float peaks piisama. 136 00:06:11,250 --> 00:06:15,340 Aga ei tea, mis kahekordistab eksisteerida viis mõnevõrra tegeleda täpsus 137 00:06:15,340 --> 00:06:20,980 Probleem, mis annab sulle ekstra 32 bitti töötada oma numbrid. 138 00:06:20,980 --> 00:06:23,650 >> Nüüd ei ole see andmetüüp. 139 00:06:23,650 --> 00:06:24,390 See on teatud tüüpi. 140 00:06:24,390 --> 00:06:25,340 Ja seda nimetatakse tühine. 141 00:06:25,340 --> 00:06:27,506 Ja ma räägin seda siin, sest me oleme ilmselt 142 00:06:27,506 --> 00:06:29,520 näinud paar korda juba CS50. 143 00:06:29,520 --> 00:06:32,020 Ja võite olla mõtlesin, mida see kõik umbes. 144 00:06:32,020 --> 00:06:33,390 >> Nii tühine on teatud tüüpi. 145 00:06:33,390 --> 00:06:34,097 On küll. 146 00:06:34,097 --> 00:06:35,180 Aga see ei ole andmebaasi tüübist. 147 00:06:35,180 --> 00:06:39,350 >> Me ei saa luua tüüpi muutuja kehtetuks ja väärtustada seda. 148 00:06:39,350 --> 00:06:42,519 Aga funktsioone, näiteks võib olla tühine tagastamise tüübist. 149 00:06:42,519 --> 00:06:45,060 Põhimõtteliselt, kui sa näed funktsiooni mis on tühine naasmise tüüp 150 00:06:45,060 --> 00:06:46,970 see tähendab, et ta ei tagasta väärtust. 151 00:06:46,970 --> 00:06:49,440 Kas te arvate, ühise funktsioon, mis meil seni kasutatud 152 00:06:49,440 --> 00:06:52,780 in CS50, et ei tagasta väärtust? 153 00:06:52,780 --> 00:06:54,700 >> Printf on üks. 154 00:06:54,700 --> 00:06:56,820 Printf ei ole tegelikult tagasi sulle midagi. 155 00:06:56,820 --> 00:06:59,850 See prindib midagi, et ekraan ja see on põhimõtteliselt 156 00:06:59,850 --> 00:07:01,650 kõrvaltoime, mida printf teeb. 157 00:07:01,650 --> 00:07:03,620 Aga see ei anna teile raha tagasi. 158 00:07:03,620 --> 00:07:08,419 Sa ei saa lüüa tulemus ja poest seda mingil varieeruv seda kasutada hiljem. 159 00:07:08,419 --> 00:07:10,710 See lihtsalt trükib midagi ekraani ja sa oled teinud. 160 00:07:10,710 --> 00:07:14,360 >> Nii me ütleme, et printf on tühine funktsioon. 161 00:07:14,360 --> 00:07:16,450 Ta naaseb midagi. 162 00:07:16,450 --> 00:07:18,580 >> Ümbermõõt nimekirjas funktsioon võib olla ka tühine. 163 00:07:18,580 --> 00:07:21,410 Ja sa näinud ka, et üsna natuke CS50 liiga. 164 00:07:21,410 --> 00:07:22,300 Int main void. 165 00:07:22,300 --> 00:07:23,260 Kas see häirekella? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Põhimõtteliselt, mida see tähendab, et Peamised ei võta parameetrid. 168 00:07:27,220 --> 00:07:29,520 Ei ole argument, et saada läks peamine. 169 00:07:29,520 --> 00:07:32,780 Nüüd hiljem näeme, et seal on nii edasi argumendid pea-, 170 00:07:32,780 --> 00:07:36,189 kuid seni me oleme näinud on int main void. 171 00:07:36,189 --> 00:07:37,730 Main lihtsalt ei võta mingeid argumente. 172 00:07:37,730 --> 00:07:40,236 Ja nii me täpsustada, et öeldes tühine. 173 00:07:40,236 --> 00:07:42,110 Me lihtsalt on väga selgesõnaline sellest, 174 00:07:42,110 --> 00:07:44,430 et see ei võta mingeid argumente. 175 00:07:44,430 --> 00:07:47,160 >> Nii nüüd piisab öelda, et void põhimõtteliselt 176 00:07:47,160 --> 00:07:50,789 tuleb lihtsalt olla kohatäide sind mõtlema kui midagi. 177 00:07:50,789 --> 00:07:52,080 See ei ole tõesti tee midagi. 178 00:07:52,080 --> 00:07:53,550 Ei ole tagastatav väärtus siin. 179 00:07:53,550 --> 00:07:54,770 Ei ole parameetreid siin. 180 00:07:54,770 --> 00:07:55,709 See on tühine. 181 00:07:55,709 --> 00:07:57,250 See on veidi keerulisem kui see. 182 00:07:57,250 --> 00:08:00,640 Aga see peaks olema piisav parem osa muidugi. 183 00:08:00,640 --> 00:08:05,010 Ja loodetavasti nüüd on vähe natuke rohkem mõiste, mis on tühjus. 184 00:08:05,010 --> 00:08:08,460 >> Nii et need on viit tüüpi saate kohtumine, mis on sisse ehitatud C. 185 00:08:08,460 --> 00:08:10,670 Aga CS50 meil on ka raamatukogu. 186 00:08:10,670 --> 00:08:13,550 CS50.h, milleks võib olla näiteks. 187 00:08:13,550 --> 00:08:15,930 Ja mis annab teile lisaks veel kahte liiki 188 00:08:15,930 --> 00:08:18,280 et sa ilmselt oleks võimalik kasutada oma ülesandeid, 189 00:08:18,280 --> 00:08:21,210 või lihtsalt töötab üldiselt programmeerimine. 190 00:08:21,210 --> 00:08:23,030 >> Esimene neist on bool. 191 00:08:23,030 --> 00:08:26,780 Nii Boole'i ​​tüüpi andmetena bool, kasutatakse muutujat 192 00:08:26,780 --> 00:08:28,114 mis salvestab tõeväärtuse. 193 00:08:28,114 --> 00:08:29,863 Kui olete kunagi kuulnud Selle aja jooksul enne seda, siis 194 00:08:29,863 --> 00:08:31,960 võiksid teada, et Boole'i väärtus on võimeline vaid 195 00:08:31,960 --> 00:08:34,440 asetage kaks erinevat erinevad väärtused. 196 00:08:34,440 --> 00:08:35,872 Õige ja vale. 197 00:08:35,872 --> 00:08:37,580 Nüüd tundub päris põhiline, eks? 198 00:08:37,580 --> 00:08:40,496 See on selline üllatus, et see ei eksisteeri C, sest see on sisseehitatud. 199 00:08:40,496 --> 00:08:42,640 Ja paljud tänapäeva keeles, Muidugi, tõeväärtused 200 00:08:42,640 --> 00:08:45,390 on standard vaikimisi andmete tüübi. 201 00:08:45,390 --> 00:08:47,192 Aga C, nad tegelikult ei. 202 00:08:47,192 --> 00:08:48,400 Aga me oleme loonud selle eest ise. 203 00:08:48,400 --> 00:08:51,910 Nii et kui teil kunagi vaja luua muutuja, mille tüübiks on bool, 204 00:08:51,910 --> 00:08:55,230 Lihtsalt olla kindel, # include CS50.h alguses oma programmi, 205 00:08:55,230 --> 00:08:57,800 ja sa pead olema võimeline looma muutujate bool tüübist. 206 00:08:57,800 --> 00:09:02,095 >> Kui te unustate # include CS50.h ja hakkad Boole'i ​​tüüpi muutujaid, 207 00:09:02,095 --> 00:09:04,970 siis võib tekkida mõningaid probleeme kui sa koostamisel oma programmi. 208 00:09:04,970 --> 00:09:06,490 Nii lihtsalt olla valvel, et. 209 00:09:06,490 --> 00:09:11,180 Ja äkki saab lihtsalt määrata probleeme nael sealhulgas CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Teine suurem andmetüüp, et me annavad teile ka CS50 raamatukogu 211 00:09:14,590 --> 00:09:15,670 on string. 212 00:09:15,670 --> 00:09:17,130 Mis on string? 213 00:09:17,130 --> 00:09:18,520 Strings on tõesti ainult sõnad. 214 00:09:18,520 --> 00:09:20,000 Nad kogusid tähemärki. 215 00:09:20,000 --> 00:09:20,640 Nad sõnu. 216 00:09:20,640 --> 00:09:21,390 Nad lauseid. 217 00:09:21,390 --> 00:09:22,480 Nad punktid. 218 00:09:22,480 --> 00:09:25,850 Võib olla terve raamatuid, isegi. 219 00:09:25,850 --> 00:09:29,690 >> Väga lühikese ja pika sarja tegelased. 220 00:09:29,690 --> 00:09:34,310 Kui teil on vaja kasutada stringe, näiteks salvestada sõna, 221 00:09:34,310 --> 00:09:37,609 lihtsalt olla kindel, et hõlmata CS50.h alguses oma programmi 222 00:09:37,609 --> 00:09:38,900 nii et saate kasutada string tüübist. 223 00:09:38,900 --> 00:09:43,910 Ja siis saate luua muutujad kelle andmed tüüp on string. 224 00:09:43,910 --> 00:09:46,160 Nüüd hiljem käigus, me ka näha, et see on 225 00:09:46,160 --> 00:09:47,752 mitte kogu lugu, kas. 226 00:09:47,752 --> 00:09:49,460 Me kohtame asju nimetatakse struktuurid, 227 00:09:49,460 --> 00:09:54,249 mis võimaldab teil rühm, mis võib olla täisarv ja string üheks tervikuks. 228 00:09:54,249 --> 00:09:56,290 Ja me saame kasutada seda mingil eesmärgil, mis võib 229 00:09:56,290 --> 00:09:57,750 käepärane hiljem muidugi. 230 00:09:57,750 --> 00:09:59,500 >> Ja me ka teada umbes määratletud tüüpi, 231 00:09:59,500 --> 00:10:01,720 mis võimaldab teil luua andmetüüpe. 232 00:10:01,720 --> 00:10:03,060 Me ei pea muretsema sellest nüüd. 233 00:10:03,060 --> 00:10:04,550 Aga tean, et see on midagi silmapiiril, 234 00:10:04,550 --> 00:10:07,633 et seal on palju rohkem seda kogu tüübist asi, kui ma ütlen sulle lihtsalt 235 00:10:07,633 --> 00:10:08,133 nüüd. 236 00:10:08,133 --> 00:10:10,591 Nüüd, et me oleme õppinud natuke lähteandmete 237 00:10:10,591 --> 00:10:14,230 tüüpi ja CS50 andmetüüpe, olgem rääkida, kuidas töötada muutujad 238 00:10:14,230 --> 00:10:18,530 ja luua neile, kasutades neid andmetüübid meie programme. 239 00:10:18,530 --> 00:10:22,670 Kui soovite luua muutuja, kõik mida sa pead tegema, on kaks asja. 240 00:10:22,670 --> 00:10:24,147 >> Esiteks, sa pead andma seda tüüpi. 241 00:10:24,147 --> 00:10:26,230 Teine asi, mida vaja mida teha, on anda talle nimi. 242 00:10:26,230 --> 00:10:28,740 Kui olete teinud seda ja slapped semikooloniga lõpus, et joon, 243 00:10:28,740 --> 00:10:29,830 lõite muutuja. 244 00:10:29,830 --> 00:10:32,370 >> Nii et siin on kaks näidet. 245 00:10:32,370 --> 00:10:35,744 Int number; char kirja ;. 246 00:10:35,744 --> 00:10:36,660 Mida ma olen teinud siin? 247 00:10:36,660 --> 00:10:38,110 Olen loonud kaks muutujat. 248 00:10:38,110 --> 00:10:40,190 >> Esimene muutuja nimi on number. 249 00:10:40,190 --> 00:10:44,830 Ja number mahub täisarv kirjuta väärtusi, sest selle tüüp on int. 250 00:10:44,830 --> 00:10:48,040 Kiri on teise muutuja mis mahub tähemärki 251 00:10:48,040 --> 00:10:50,240 sest tema andmete tüüp on char. 252 00:10:50,240 --> 00:10:51,772 >> Päris lihtne, eks? 253 00:10:51,772 --> 00:10:53,480 Kui sa leiad ennast olukorras, kus 254 00:10:53,480 --> 00:10:56,250 teil on vaja luua mitu muutujad on sama tüüpi, 255 00:10:56,250 --> 00:10:58,740 pead ainult täpsustada tüüp nime korraga. 256 00:10:58,740 --> 00:11:01,600 Siis lihtsalt loetleda nii palju muutujaid seda tüüpi kui vaja. 257 00:11:01,600 --> 00:11:04,230 >> Nii et ma võiks näiteks siin Selles kolmanda koodirida, 258 00:11:04,230 --> 00:11:07,420 öelda int kõrgus ;, uut liini. 259 00:11:07,420 --> 00:11:08,291 Int laius ;. 260 00:11:08,291 --> 00:11:09,290 Ja mis töötaks ka. 261 00:11:09,290 --> 00:11:12,039 Ma ikka kahe muutuja nimega kõrguse ja laiuse, millest igaüks 262 00:11:12,039 --> 00:11:12,730 on täisarv. 263 00:11:12,730 --> 00:11:16,970 Aga ma olen lubatud, asju C süntaksit, koondada see ühe rea. 264 00:11:16,970 --> 00:11:20,230 Int kõrgus, laius; See on sama asi. 265 00:11:20,230 --> 00:11:23,900 Olen loonud kaks muutujat, üks nn kõrgus üks nimetatakse laiusega, mis mõlemad 266 00:11:23,900 --> 00:11:26,730 on võimeline hoidma täisarvtüübil väärtusi. 267 00:11:26,730 --> 00:11:30,920 >> Samamoodi siin, ma ei saa luua kolm murdarve korraga. 268 00:11:30,920 --> 00:11:33,350 Võin olla luua muutuja nimetatakse ruutjuure 2-- 269 00:11:33,350 --> 00:11:35,766 mis eeldatavalt lõpuks hoidke ujuvad point-- 270 00:11:35,766 --> 00:11:39,222 et esitus ruut Juur 2-- ruutjuur 3 ja pi. 271 00:11:39,222 --> 00:11:41,180 Ma oleks seda teinud kolmele eraldi reale. 272 00:11:41,180 --> 00:11:47,690 Float, ruutjuur 2; Float ruutjuure 3; float pi; ja mis töötaks ka. 273 00:11:47,690 --> 00:11:50,590 >> Aga jälle, ma ei saa lihtsalt koondada Selle üheks rida koodi. 274 00:11:50,590 --> 00:11:54,050 Paneb asju natuke lühem, mitte kohmakad. 275 00:11:54,050 --> 00:11:57,259 >> Nüüd üldiselt see on hea disain ainult kuulutada muutuja, kui seda vajate. 276 00:11:57,259 --> 00:11:59,050 Ja me räägime veidi natuke rohkem, et 277 00:11:59,050 --> 00:12:00,945 Hiljem käigus kui me räägime ulatus. 278 00:12:00,945 --> 00:12:03,320 Nii ei pea luua kõik oma muutujad 279 00:12:03,320 --> 00:12:05,990 alguses programmi, mis mõned inimesed võivad teinud minevikus, 280 00:12:05,990 --> 00:12:08,700 või oli kindlasti väga sage koodis tava aastaid tagasi 281 00:12:08,700 --> 00:12:11,700 töötamisel C. võid lihtsalt tahame luua muutuja õigus, kui 282 00:12:11,700 --> 00:12:13,140 seda vajate. 283 00:12:13,140 --> 00:12:13,640 Hästi. 284 00:12:13,640 --> 00:12:15,150 Nii oleme loonud muutujaid. 285 00:12:15,150 --> 00:12:16,790 Kuidas neid kasutada? 286 00:12:16,790 --> 00:12:18,650 Pärast me kuulutada varieeruv, me ei pea 287 00:12:18,650 --> 00:12:21,237 täpsustada andmete tüübi Selle muutuja enam. 288 00:12:21,237 --> 00:12:24,070 Tegelikult, kui te seda teete, võite lõpuks imelikke tagajärjed 289 00:12:24,070 --> 00:12:25,490 et me mingi ilustada nüüd. 290 00:12:25,490 --> 00:12:27,365 Aga piisab, kui öelda, imelik asjad lähevad 291 00:12:27,365 --> 00:12:30,740 alustada juhtub, kui sa kogemata uuesti deklareerida muutujaid sama nime 292 00:12:30,740 --> 00:12:32,210 ikka ja jälle. 293 00:12:32,210 --> 00:12:33,882 >> Nii et siin mul on neli rida koodi. 294 00:12:33,882 --> 00:12:36,090 Ja mul on paar Kommentaarid on lihtsalt näitab, 295 00:12:36,090 --> 00:12:37,840 mis toimub iga rida lihtsalt aidata 296 00:12:37,840 --> 00:12:40,520 saad asub, mis toimub. 297 00:12:40,520 --> 00:12:41,520 Nii int number ;. 298 00:12:41,520 --> 00:12:42,520 Sa nägid, et varem. 299 00:12:42,520 --> 00:12:44,000 See muutuja deklaratsiooni. 300 00:12:44,000 --> 00:12:46,670 >> Olen nüüd loonud muutuva nimetatakse arvu, mis on 301 00:12:46,670 --> 00:12:48,970 mahub täisarv-tüüpi väärtusi. 302 00:12:48,970 --> 00:12:50,210 Olen kuulutanud. 303 00:12:50,210 --> 00:12:53,770 >> Järgmisel real ma määrates väärtus on number. 304 00:12:53,770 --> 00:12:54,992 Number võrdub 17. 305 00:12:54,992 --> 00:12:55,950 Mis toimub seal? 306 00:12:55,950 --> 00:12:58,880 Ma panen arv 17 sees, et muutuja. 307 00:12:58,880 --> 00:13:02,760 >> Nii et kui ma kunagi siis välja printida, mida sisu arv on hiljem 308 00:13:02,760 --> 00:13:04,030 siis nad ütlevad mulle see 17. 309 00:13:04,030 --> 00:13:07,030 Nii et ma olen kuulutanud muutuja, ja siis ma olen määratud see. 310 00:13:07,030 --> 00:13:10,570 >> Me võime korrata protsessi jälle char kirja ;. 311 00:13:10,570 --> 00:13:11,640 See deklaratsioon. 312 00:13:11,640 --> 00:13:14,010 Kiri võrdub kapitali H. See loovutamine. 313 00:13:14,010 --> 00:13:16,030 Päris lihtne, liiga. 314 00:13:16,030 --> 00:13:18,319 >> Nüüd see protsess võiks tunduda selline rumal. 315 00:13:18,319 --> 00:13:20,110 Miks me seda teeme kaks rida koodi? 316 00:13:20,110 --> 00:13:21,401 Kas parem viis seda teha? 317 00:13:21,401 --> 00:13:22,250 Tegelikult on. 318 00:13:22,250 --> 00:13:24,375 Mõnikord võib näha Selle nimega ettekanne. 319 00:13:24,375 --> 00:13:28,446 See on siis, kui kuulutada muutuja ja omistada väärtus samal ajal. 320 00:13:28,446 --> 00:13:30,320 See on tegelikult päris ühine asi, mida teha. 321 00:13:30,320 --> 00:13:32,870 Kui loote muutuja, mida tavaliselt tahan sellega mõned põhilised väärtus. 322 00:13:32,870 --> 00:13:34,330 Isegi kui see on 0 või midagi. 323 00:13:34,330 --> 00:13:36,180 Sa lihtsalt annad talle raha. 324 00:13:36,180 --> 00:13:38,360 >> Võite initsialiseerida muutuv. 325 00:13:38,360 --> 00:13:42,320 Int nr võrdub 17 on sama kaks esimest rida koodi ülevalt. 326 00:13:42,320 --> 00:13:46,829 Char kirjas võrdub h on sama Kolmas ja neljas rida koodi eespool. 327 00:13:46,829 --> 00:13:49,620 Kõige olulisem Buffee siin kui me deklareerimise ja määramise 328 00:13:49,620 --> 00:13:51,740 muutujad on pärast me oleme kuulutas ta, teate 329 00:13:51,740 --> 00:13:53,700 Ma ei kasuta andmetüüp uuesti. 330 00:13:53,700 --> 00:13:57,916 Ma ei ütle, int nr võrdub 17 teine ​​rida koodi, näiteks. 331 00:13:57,916 --> 00:13:59,290 Ma lihtsalt ütlen, nr võrdub 17. 332 00:13:59,290 --> 00:14:02,537 >> Jällegi uuesti kuulutab muutuja pärast olete juba deklareeritud see võib põhjustada 333 00:14:02,537 --> 00:14:03,620 mõned imelik tagajärg. 334 00:14:03,620 --> 00:14:05,950 Nii lihtsalt olla ettevaatlik, et. 335 00:14:05,950 --> 00:14:06,660 >> Ma olen Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Ja see on CS50. 337 00:14:08,870 --> 00:14:10,499