1 00:00:00,000 --> 00:00:02,420 >> [MUSIK SPELA] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 Speak: Okej. 4 00:00:05,980 --> 00:00:08,540 Så låt oss tala om en annan sak som är ganska unikt för C, 5 00:00:08,540 --> 00:00:10,010 vilket är datatyper och variabler. 6 00:00:10,010 --> 00:00:12,340 När jag säger unika för C, jag verkligen bara betyda i samband med, 7 00:00:12,340 --> 00:00:14,470 Om du har varit en programmerare för en riktigt lång tid, 8 00:00:14,470 --> 00:00:16,270 du har antagligen inte arbetat med datatyper 9 00:00:16,270 --> 00:00:18,470 Om du har använt modern programmeringsspråk. 10 00:00:18,470 --> 00:00:20,432 Moderna språk som PHP och JavaScript, 11 00:00:20,432 --> 00:00:22,640 som vi också kan se en liten senare i kursen, 12 00:00:22,640 --> 00:00:25,550 du egentligen inte behöver ange datatyp en variabel 13 00:00:25,550 --> 00:00:26,270 när du använder den. 14 00:00:26,270 --> 00:00:28,067 >> Du förklara den bara och börja använda den. 15 00:00:28,067 --> 00:00:29,900 Om det är ett heltal, det vet att det är ett heltal. 16 00:00:29,900 --> 00:00:31,960 Om det är ett tecken, det är vet att det är ett tecken. 17 00:00:31,960 --> 00:00:35,320 Om det är ett ord, vet det Det är en sträng, så kallade. 18 00:00:35,320 --> 00:00:37,300 >> Men i C, vilket är en äldre språk, vi behöver 19 00:00:37,300 --> 00:00:39,420 att ange vilka uppgifter typ av varje variabel 20 00:00:39,420 --> 00:00:42,990 att vi skapar för första gången att vi använder den variabeln. 21 00:00:42,990 --> 00:00:45,030 Så C kommer med några inbyggda datatyper. 22 00:00:45,030 --> 00:00:46,972 Och låt oss bekanta med några av dem. 23 00:00:46,972 --> 00:00:50,180 Och sedan efteråt kommer vi också prata lite om några av de datatyper 24 00:00:50,180 --> 00:00:54,450 att vi har skrivit för dig, så du kan använda dem i CS50. 25 00:00:54,450 --> 00:00:56,130 >> Den första är int. 26 00:00:56,130 --> 00:00:59,110 Typen int data används för variabler som kommer att lagra heltalsvärden. 27 00:00:59,110 --> 00:01:03,210 So 1, 2, 3, -1, 2, 3, och så vidare. 28 00:01:03,210 --> 00:01:05,960 Heltal, vilket är något du bör ha i åtanke för testet, 29 00:01:05,960 --> 00:01:09,590 alltid ta upp fyra byte minne, som är 32 bitar. 30 00:01:09,590 --> 00:01:11,620 Det finns åtta bitar i en byte. 31 00:01:11,620 --> 00:01:14,470 >> Så detta innebär att utbudet av Värden som ett heltal kan lagra 32 00:01:14,470 --> 00:01:19,130 är begränsad av vad som kan passa inuti 32 bitar värde av informationen. 33 00:01:19,130 --> 00:01:21,850 Nu visar det sig, Det var länge sedan bestämde 34 00:01:21,850 --> 00:01:24,310 att vi skulle dela upp detta intervall av 32 bitar 35 00:01:24,310 --> 00:01:26,650 till negativa heltal och positiva heltal, 36 00:01:26,650 --> 00:01:28,390 varje få hälften av intervallet. 37 00:01:28,390 --> 00:01:32,230 Så de värden som vi representerar med ett heltal, från negativ 2 38 00:01:32,230 --> 00:01:36,520 till den 31 kraft till 2 31 makt minus 1, 39 00:01:36,520 --> 00:01:38,190 orsaka behöver du också en plats för 0. 40 00:01:38,190 --> 00:01:41,650 >> Så i princip hälften av de möjliga värdena du kan passa in i en int är negativa, 41 00:01:41,650 --> 00:01:42,610 och hälften är positiva. 42 00:01:42,610 --> 00:01:47,270 Och ungefär här handlar det om negativa 2000000000 till en positiv 2 miljarder. 43 00:01:47,270 --> 00:01:50,207 Ge eller ta ett par hundra miljoner. 44 00:01:50,207 --> 00:01:52,290 Så det är vad du kan passa i en heltalsvariabel. 45 00:01:52,290 --> 00:01:55,490 Nu har vi också något kallas ett osignerat heltal. 46 00:01:55,490 --> 00:01:59,220 Nu osignerade ints är inte en separat typ av variabel. 47 00:01:59,220 --> 00:02:01,590 Snarare är osignerad vad som kallas en kvalmatch. 48 00:02:01,590 --> 00:02:04,990 Det ändrar data typ av heltal något. 49 00:02:04,990 --> 00:02:07,850 >> Och i detta fall, vad unsigned means-- och du kan också 50 00:02:07,850 --> 00:02:11,530 använda osignerade andra datatyper, heltal är inte den enda. 51 00:02:11,530 --> 00:02:15,310 Vad det effektivt gör är dubbel det positiva området av värden 52 00:02:15,310 --> 00:02:19,350 att ett heltal kan ta på bekostnad av att inte längre tillåta 53 00:02:19,350 --> 00:02:21,140 dig att ta på negativa värden. 54 00:02:21,140 --> 00:02:25,400 Så om du har siffror som du vet kommer att få mer än 2 miljarder men mindre 55 00:02:25,400 --> 00:02:31,280 än 4 miljarder, för example-- vilket är två till 32:e Power-- 56 00:02:31,280 --> 00:02:33,330 kanske du vill använda en osignerad int om du 57 00:02:33,330 --> 00:02:35,050 vet ditt värde kommer aldrig att bli negativ. 58 00:02:35,050 --> 00:02:37,216 >> Du kommer då att ha används för osignerade variabler 59 00:02:37,216 --> 00:02:39,460 i CS50, vilket är anledningen till att jag nämner det här. 60 00:02:39,460 --> 00:02:43,830 Men återigen, de olika värden som du kan representera med ett osignerat heltal 61 00:02:43,830 --> 00:02:48,240 som att t regelbunden heltal är 0 2 till 32: a makten minus 1, 62 00:02:48,240 --> 00:02:50,840 eller ca 0-4000000000. 63 00:02:50,840 --> 00:02:53,730 Så du har faktiskt fördubblat positiv område som du kan passa, 64 00:02:53,730 --> 00:02:56,270 men du har gett upp alla de negativa värden. 65 00:02:56,270 --> 00:03:00,040 >> Nu som en sidoreplik, osignerad är inte den enda kvalificerare 66 00:03:00,040 --> 00:03:01,790 att vi kan se variabeldatatyper. 67 00:03:01,790 --> 00:03:05,779 Det finns också saker som kallas kort och lång och konst. 68 00:03:05,779 --> 00:03:07,820 Const vi får se lite Lite senare i kursen. 69 00:03:07,820 --> 00:03:10,830 Kort och lång, vi förmodligen inte. 70 00:03:10,830 --> 00:03:12,830 >> Men vet bara att det är andra kvalet. 71 00:03:12,830 --> 00:03:14,080 Unsigned är inte den enda. 72 00:03:14,080 --> 00:03:16,596 Men det är det enda vi är kommer att prata om just nu. 73 00:03:16,596 --> 00:03:17,310 Så okej. 74 00:03:17,310 --> 00:03:18,393 Så vi har täckt heltal. 75 00:03:18,393 --> 00:03:19,200 Vad händer härnäst? 76 00:03:19,200 --> 00:03:20,130 >> Tecken. 77 00:03:20,130 --> 00:03:23,620 Så tecken används för variabler som kommer att lagra enstaka tecken. 78 00:03:23,620 --> 00:03:24,850 Char är en förkortning av karaktär. 79 00:03:24,850 --> 00:03:27,870 Och ibland du kan höra folk uttalas som bil. 80 00:03:27,870 --> 00:03:32,020 >> Så tecken alltid ta upp ett byte av minne, som ligger bara 8 bitar. 81 00:03:32,020 --> 00:03:35,700 Så detta innebär att de endast kan passa värden i området negativt 2 82 00:03:35,700 --> 00:03:42,430 till sjunde makten, eller negativt 128, 2 till den 7: e makten minus 1, eller 127. 83 00:03:42,430 --> 00:03:45,710 >> Tack vare ASCII, var det länge sedan bestämde ett sätt 84 00:03:45,710 --> 00:03:50,805 att kartlägga de positiva tal från 0 till 127 olika tecken 85 00:03:50,805 --> 00:03:52,182 att allt finns på våra tangentbord. 86 00:03:52,182 --> 00:03:54,640 Så när vi får se senare i kursen och du kommer förmodligen 87 00:03:54,640 --> 00:03:57,700 komma att memorera någon punkten, kapital A, för example-- 88 00:03:57,700 --> 00:04:00,732 tecken huvudstaden A-- kartor till antalet 65. 89 00:04:00,732 --> 00:04:02,940 Och anledningen till det är eftersom det är vad det är 90 00:04:02,940 --> 00:04:05,490 fått i uppdrag av ASCII-standarden. 91 00:04:05,490 --> 00:04:07,850 >> Gement A är 97. 92 00:04:07,850 --> 00:04:11,900 Tecknet 0 när du faktiskt skriver karaktär, inte 93 00:04:11,900 --> 00:04:13,532 representerar antalet noll, är 48. 94 00:04:13,532 --> 00:04:15,240 Du får lära dig ett par av dessa som du går. 95 00:04:15,240 --> 00:04:17,990 Och du kommer säkerligen komma att behöva dem lite senare i CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Nästa stora datatyp är flyttal. 98 00:04:23,390 --> 00:04:26,100 Så flyttal är även känd som reella tal. 99 00:04:26,100 --> 00:04:28,850 De är i stort sett siffror som har ett decimalkomma i dem. 100 00:04:28,850 --> 00:04:33,360 Flyttalsvärden liknande heltal är också 101 00:04:33,360 --> 00:04:36,090 finns inom 4 byte minne. 102 00:04:36,090 --> 00:04:37,580 Nu finns det ingen diagrammet här. 103 00:04:37,580 --> 00:04:40,890 Det finns inget nummer linje, eftersom beskriver intervallet en flottör 104 00:04:40,890 --> 00:04:44,550 är inte exakt klart eller intuitiv. 105 00:04:44,550 --> 00:04:47,350 >> Det räcker med att säga att du har 32 bitar att arbeta med. 106 00:04:47,350 --> 00:04:49,730 Och om du har ett antal som pi, som har 107 00:04:49,730 --> 00:04:55,510 ett heltal del 3, och en flytande punkt del, eller decimal del 0,14159, 108 00:04:55,510 --> 00:04:58,735 och så vidare, måste du vara kunna representera alla det-- 109 00:04:58,735 --> 00:05:02,420 heltalsdelen och decimaldelen. 110 00:05:02,420 --> 00:05:04,550 >> Så vad tror du det kan innebära? 111 00:05:04,550 --> 00:05:08,180 En sak är att om decimaltecknet del blir längre och längre, 112 00:05:08,180 --> 00:05:10,660 om jag har en mycket stor heltal del, jag kanske inte 113 00:05:10,660 --> 00:05:13,090 kunna vara så exakt med decimaldelen. 114 00:05:13,090 --> 00:05:15,280 Och det är verkligen begränsning av en flottör. 115 00:05:15,280 --> 00:05:17,229 >> Flyter ha en noggrannhet problem. 116 00:05:17,229 --> 00:05:19,270 Vi har bara 32 bitar till arbeta med, så vi bara kan 117 00:05:19,270 --> 00:05:22,510 vara så noggrann med vår decimaldelen. 118 00:05:22,510 --> 00:05:27,300 Vi kan inte nödvändigtvis har en decimal del exakt 100 eller 200 siffror, 119 00:05:27,300 --> 00:05:29,710 eftersom vi bara har 32 bitar att arbeta med. 120 00:05:29,710 --> 00:05:31,590 Så det är en begränsning av en flottör. 121 00:05:31,590 --> 00:05:33,590 >> Nu lyckligtvis finns det annan datatyp kallas 122 00:05:33,590 --> 00:05:36,530 dubbel, som något behandlar detta problem. 123 00:05:36,530 --> 00:05:39,980 Dubbel, som flottar, används också för att lagra reella tal, eller flyttal 124 00:05:39,980 --> 00:05:40,840 värden. 125 00:05:40,840 --> 00:05:44,340 Skillnaden är att dubbel är dubbel precision. 126 00:05:44,340 --> 00:05:48,177 De kan passa 64 bitar uppgifter, eller åtta byte. 127 00:05:48,177 --> 00:05:49,010 Vad betyder det? 128 00:05:49,010 --> 00:05:51,801 Tja, innebär det att vi kan vara mycket mer exakt med decimalkommat. 129 00:05:51,801 --> 00:05:54,830 Istället för att ha pi till sju platser kanske, med en flottör, 130 00:05:54,830 --> 00:05:56,710 Vi kan kanske ha det till 30 platser. 131 00:05:56,710 --> 00:05:59,824 Om det är viktigt, kanske du vill att använda en dubbel i stället för en flottör. 132 00:05:59,824 --> 00:06:01,740 I grund och botten, om du är arbetar med något där 133 00:06:01,740 --> 00:06:06,540 med en riktigt lång decimal och en hel del precisionen är viktig, 134 00:06:06,540 --> 00:06:08,630 du förmodligen vill Använd en dubbel overfloat. 135 00:06:08,630 --> 00:06:11,250 Nu för de flesta av ditt arbete i CS50, bör en flottör räcka. 136 00:06:11,250 --> 00:06:15,340 Men vet att dubbel existera som en sätt att något itu med precision 137 00:06:15,340 --> 00:06:20,980 problem genom att ge dig en extra 32 bitar att arbeta med för dina nummer. 138 00:06:20,980 --> 00:06:23,650 >> Nu är detta inte en datatyp. 139 00:06:23,650 --> 00:06:24,390 Detta är en typ. 140 00:06:24,390 --> 00:06:25,340 Och det kallas ogiltig. 141 00:06:25,340 --> 00:06:27,506 Och jag talar om det här eftersom vi har förmodligen 142 00:06:27,506 --> 00:06:29,520 sett det några gånger redan i CS50. 143 00:06:29,520 --> 00:06:32,020 Och kanske du undrar vad det handlar om. 144 00:06:32,020 --> 00:06:33,390 >> Så void är en typ. 145 00:06:33,390 --> 00:06:34,097 Det existerar. 146 00:06:34,097 --> 00:06:35,180 Men det är inte en datatyp. 147 00:06:35,180 --> 00:06:39,350 >> Vi kan inte skapa en variabel av typen ogiltig och tilldela ett värde till den. 148 00:06:39,350 --> 00:06:42,519 Men funktioner, till exempel, kan ha en typ void avkastning. 149 00:06:42,519 --> 00:06:45,060 I grund och botten, om du ser en funktion som har en typ void avkastning, 150 00:06:45,060 --> 00:06:46,970 Det betyder att det inte returnera ett värde. 151 00:06:46,970 --> 00:06:49,440 Kan du tänka på ett gemensamt funktion som vi har använt hittills 152 00:06:49,440 --> 00:06:52,780 i CS50 som inte återgår ett värde? 153 00:06:52,780 --> 00:06:54,700 >> Printf är en. 154 00:06:54,700 --> 00:06:56,820 Printf faktiskt inte tillbaka något för dig. 155 00:06:56,820 --> 00:06:59,850 Det skriver något till skärmen, och det är i princip 156 00:06:59,850 --> 00:07:01,650 en bieffekt av vad printf gör. 157 00:07:01,650 --> 00:07:03,620 Men det inte ger dig ett värde tillbaka. 158 00:07:03,620 --> 00:07:08,419 Du behöver inte fånga resultatet och lagra det i vissa variabel för att använda den senare. 159 00:07:08,419 --> 00:07:10,710 Den skriver bara något att skärmen och du är klar. 160 00:07:10,710 --> 00:07:14,360 >> Så vi säger att printf är ett tomrum funktion. 161 00:07:14,360 --> 00:07:16,450 Den returnerar ingenting. 162 00:07:16,450 --> 00:07:18,580 >> Omkrets förteckning över en Funktionen kan också vara ogiltiga. 163 00:07:18,580 --> 00:07:21,410 Och du har också sett att en hel del i CS50 alltför. 164 00:07:21,410 --> 00:07:22,300 Int main tomrum. 165 00:07:22,300 --> 00:07:23,260 Betyder det ringer en klocka? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 I grund och botten vad det betyder är att Huvud tar inga parametrar. 168 00:07:27,220 --> 00:07:29,520 Det finns inget argument som få passerat in i main. 169 00:07:29,520 --> 00:07:32,780 Nu senare kommer vi att se att det finns ett sätt att passera argument till main, 170 00:07:32,780 --> 00:07:36,189 men hittills vad vi har sett är int main tomrum. 171 00:07:36,189 --> 00:07:37,730 Huvud bara inte tar några argument. 172 00:07:37,730 --> 00:07:40,236 Och så vi anger att genom att säga ogiltigt. 173 00:07:40,236 --> 00:07:42,110 Vi bara vara mycket explicit om det faktum 174 00:07:42,110 --> 00:07:44,430 att det inte tar några argument. 175 00:07:44,430 --> 00:07:47,160 >> Så nu räcker det att säger detta tomrum i grunden 176 00:07:47,160 --> 00:07:50,789 ska bara fungera som en platshållare för dig som funderar på som ingenting. 177 00:07:50,789 --> 00:07:52,080 Det är egentligen inte göra någonting. 178 00:07:52,080 --> 00:07:53,550 Det finns ingen återvändo värde här. 179 00:07:53,550 --> 00:07:54,770 Det finns inga parametrar här. 180 00:07:54,770 --> 00:07:55,709 Det är ogiltiga. 181 00:07:55,709 --> 00:07:57,250 Det är lite mer komplicerat än så. 182 00:07:57,250 --> 00:08:00,640 Men detta borde räcka för den bättre delen av kursen. 183 00:08:00,640 --> 00:08:05,010 Och förhoppningsvis nu du har lite lite mer av en uppfattning om vad void är. 184 00:08:05,010 --> 00:08:08,460 >> Så de är de fem typer du kommer möte som är inbyggt i C. 185 00:08:08,460 --> 00:08:10,670 Men i CS50 vi har också ett bibliotek. 186 00:08:10,670 --> 00:08:13,550 CS50.h, som du kan inkludera. 187 00:08:13,550 --> 00:08:15,930 Och som kommer att ge dig med ytterligare två typer 188 00:08:15,930 --> 00:08:18,280 att du förmodligen kommer att kunna att använda på dina uppdrag, 189 00:08:18,280 --> 00:08:21,210 eller bara arbetar generellt programmering. 190 00:08:21,210 --> 00:08:23,030 >> Den första av dessa är bool. 191 00:08:23,030 --> 00:08:26,780 Så Boolean datatyp bool, används för variabler 192 00:08:26,780 --> 00:08:28,114 som kommer att lagra ett booleskt värde. 193 00:08:28,114 --> 00:08:29,863 Om du någonsin har hört denna term innan du 194 00:08:29,863 --> 00:08:31,960 kanske vet att en Boolean värde är i stånd att endast 195 00:08:31,960 --> 00:08:34,440 håller två olika distinkta värden. 196 00:08:34,440 --> 00:08:35,872 Sant och falskt. 197 00:08:35,872 --> 00:08:37,580 Nu verkar ganska grundläggande, eller hur? 198 00:08:37,580 --> 00:08:40,496 Det är lite av en överraskning att denna existerar inte i C som det är inbyggt. 199 00:08:40,496 --> 00:08:42,640 Och i många moderna språk, naturligtvis, Booleans 200 00:08:42,640 --> 00:08:45,390 är en standard standarddatatypen. 201 00:08:45,390 --> 00:08:47,192 Men i C, de är faktiskt inte. 202 00:08:47,192 --> 00:08:48,400 Men vi har skapat det för dig. 203 00:08:48,400 --> 00:08:51,910 Så om du någonsin behöver för att skapa en variabel vars typ är bool, 204 00:08:51,910 --> 00:08:55,230 bara vara säker på att #include CS50.h i början av programmet, 205 00:08:55,230 --> 00:08:57,800 och du kommer att kunna skapa variabler av typ bool. 206 00:08:57,800 --> 00:09:02,095 >> Om du har glömt att #include CS50.h, och du börjar använda Boolean-typ variabler, 207 00:09:02,095 --> 00:09:04,970 du kan stöta på vissa problem när du sammanställa ditt program. 208 00:09:04,970 --> 00:09:06,490 Så bara vara på jakt efter det. 209 00:09:06,490 --> 00:09:11,180 Och kanske kan du bara fixa problem genom pund inklusive CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Den andra stora datatyp som vi ge dig i CS50 biblioteket 211 00:09:14,590 --> 00:09:15,670 är sträng. 212 00:09:15,670 --> 00:09:17,130 Så vad är en sträng? 213 00:09:17,130 --> 00:09:18,520 Strängar är egentligen bara ord. 214 00:09:18,520 --> 00:09:20,000 De är samlingar av tecken. 215 00:09:20,000 --> 00:09:20,640 De är ord. 216 00:09:20,640 --> 00:09:21,390 De är meningar. 217 00:09:21,390 --> 00:09:22,480 De är stycken. 218 00:09:22,480 --> 00:09:25,850 Kan vara hela böcker, även. 219 00:09:25,850 --> 00:09:29,690 >> Mycket kort till mycket lång serie tecken. 220 00:09:29,690 --> 00:09:34,310 Om du behöver använda strängar, till exempel för att lagra ett ord, 221 00:09:34,310 --> 00:09:37,609 bara se till att inkludera CS50.h i början av ditt program 222 00:09:37,609 --> 00:09:38,900 så att du kan använda den typ strängen. 223 00:09:38,900 --> 00:09:43,910 Och då kan du skapa variabler vars datatyp är sträng. 224 00:09:43,910 --> 00:09:46,160 Nu senare i kursen, Vi kommer också att se att det är 225 00:09:46,160 --> 00:09:47,752 inte hela historien, heller. 226 00:09:47,752 --> 00:09:49,460 Vi kommer att stöta på saker kallade strukturer, 227 00:09:49,460 --> 00:09:54,249 vilket gör att du gruppera vad som kan vara ett heltal och en sträng till en enhet. 228 00:09:54,249 --> 00:09:56,290 Och vi kan använda det för något ändamål, som kanske 229 00:09:56,290 --> 00:09:57,750 komma väl till pass senare i kursen. 230 00:09:57,750 --> 00:09:59,500 >> Och vi kommer också lära om vissa typer, 231 00:09:59,500 --> 00:10:01,720 som låter dig skapa egna datatyper. 232 00:10:01,720 --> 00:10:03,060 Vi behöver inte oroa dig om det nu. 233 00:10:03,060 --> 00:10:04,550 Men vet bara att det är något vid horisonten, 234 00:10:04,550 --> 00:10:07,633 att det finns mycket mer att hela denna typ sak än jag säger bara 235 00:10:07,633 --> 00:10:08,133 nu. 236 00:10:08,133 --> 00:10:10,591 Så nu när vi har lärt oss lite om grundläggande uppgifter 237 00:10:10,591 --> 00:10:14,230 typer och typer CS50 data, låt oss prata om hur man arbetar med variabler 238 00:10:14,230 --> 00:10:18,530 och skapa dem med dessa datatyper i våra program. 239 00:10:18,530 --> 00:10:22,670 Om du vill skapa en variabel, allt du behöver göra är två saker. 240 00:10:22,670 --> 00:10:24,147 >> Först måste du ge det en typ. 241 00:10:24,147 --> 00:10:26,230 Den andra saken du behöver göra är att ge den ett namn. 242 00:10:26,230 --> 00:10:28,740 När du har gjort det och slog en semikolon i slutet av den linjen, 243 00:10:28,740 --> 00:10:29,830 du har skapat en variabel. 244 00:10:29,830 --> 00:10:32,370 >> Så här är två exempel. 245 00:10:32,370 --> 00:10:35,744 Int antal; char bokstav ;. 246 00:10:35,744 --> 00:10:36,660 Vad har jag gjort här? 247 00:10:36,660 --> 00:10:38,110 Jag har skapat två variabler. 248 00:10:38,110 --> 00:10:40,190 >> Den första, variabelns namn är nummer. 249 00:10:40,190 --> 00:10:44,830 Och antalet kan hålla heltal skriver värden, eftersom dess typ är int. 250 00:10:44,830 --> 00:10:48,040 Letter är en annan variabel som kan hålla tecken 251 00:10:48,040 --> 00:10:50,240 eftersom dess datatyp är röding. 252 00:10:50,240 --> 00:10:51,772 >> Ganska enkelt, eller hur? 253 00:10:51,772 --> 00:10:53,480 Om du befinner dig i en situation där 254 00:10:53,480 --> 00:10:56,250 du behöver för att skapa flera variabler av samma typ, 255 00:10:56,250 --> 00:10:58,740 du behöver bara ange typnamnet gång. 256 00:10:58,740 --> 00:11:01,600 Sedan är det bara lista så många variabler av den typ som du behöver. 257 00:11:01,600 --> 00:11:04,230 >> Så jag kunde till exempel, här i denna tredje raden av kod, 258 00:11:04,230 --> 00:11:07,420 säger int höjd ;, ny rad. 259 00:11:07,420 --> 00:11:08,291 Int bredd ;. 260 00:11:08,291 --> 00:11:09,290 Och det skulle fungera också. 261 00:11:09,290 --> 00:11:12,039 Jag skulle fortfarande få två variabler som heter höjd och bredd, som var och en 262 00:11:12,039 --> 00:11:12,730 är ett heltal. 263 00:11:12,730 --> 00:11:16,970 Men jag får saker till C syntax, konsolidera det till en enda rad. 264 00:11:16,970 --> 00:11:20,230 Int höjd, bredd; Det är samma sak. 265 00:11:20,230 --> 00:11:23,900 Jag har skapat två variabler, som kallas höjd en kallas bredd, vilka båda 266 00:11:23,900 --> 00:11:26,730 är kapabla att innehav heltal typ värden. 267 00:11:26,730 --> 00:11:30,920 >> På samma sätt här, kan jag skapa tre flyttal värden samtidigt. 268 00:11:30,920 --> 00:11:33,350 Jag kan kanske skapa en variabel kallas kvadratroten av 2-- 269 00:11:33,350 --> 00:11:35,766 vilket förmodligen kommer så småningom hålla den flytande point-- 270 00:11:35,766 --> 00:11:39,222 som representation av torget roten av 2-- kvadratroten av tre, och pi. 271 00:11:39,222 --> 00:11:41,180 Jag kunde ha gjort det här vid tre olika linjer. 272 00:11:41,180 --> 00:11:47,690 Float, kvadratroten 2; Float kvadratroten 3; flyta pi; och det skulle fungera också. 273 00:11:47,690 --> 00:11:50,590 >> Men återigen, kan jag bara konsolidera detta i en enda rad kod. 274 00:11:50,590 --> 00:11:54,050 Gör saker lite kortare, inte lika otymplig. 275 00:11:54,050 --> 00:11:57,259 >> Nu i allmänhet, är det bra design till endast deklarera en variabel när du behöver det. 276 00:11:57,259 --> 00:11:59,050 Och vi kommer att prata lite lite mer om det 277 00:11:59,050 --> 00:12:00,945 senare under loppet när vi diskuterar omfattning. 278 00:12:00,945 --> 00:12:03,320 Så inte nödvändigtvis skapa alla dina variabler 279 00:12:03,320 --> 00:12:05,990 i början av programmet, som vissa människor kanske har gjort tidigare, 280 00:12:05,990 --> 00:12:08,700 eller var verkligen en mycket vanlig kodning praxis många år sedan 281 00:12:08,700 --> 00:12:11,700 när man arbetar med C. Du kanske bara vill skapa en variabel rätt när 282 00:12:11,700 --> 00:12:13,140 du behöver det. 283 00:12:13,140 --> 00:12:13,640 Okej. 284 00:12:13,640 --> 00:12:15,150 Så vi har skapat variabler. 285 00:12:15,150 --> 00:12:16,790 Hur använder vi dem? 286 00:12:16,790 --> 00:12:18,650 När vi förklarar en variabel, behöver vi inte 287 00:12:18,650 --> 00:12:21,237 att ange datatyp av denna variabel längre. 288 00:12:21,237 --> 00:12:24,070 I själva verket, om du gör det, kanske du sluta med några konstiga konsekvenser 289 00:12:24,070 --> 00:12:25,490 att vi kommer typen av skyla över nu. 290 00:12:25,490 --> 00:12:27,365 Men det räcker att säga, konstiga saker går 291 00:12:27,365 --> 00:12:30,740 att börja hända om du av misstag åter deklarera variabler med samma namn 292 00:12:30,740 --> 00:12:32,210 om och om. 293 00:12:32,210 --> 00:12:33,882 >> Så här har jag fyra rader kod. 294 00:12:33,882 --> 00:12:36,090 Och jag har ett par kommentarer där bara anger 295 00:12:36,090 --> 00:12:37,840 vad som händer på varje rad bara för att hjälpa 296 00:12:37,840 --> 00:12:40,520 du får ligger i vad som händer. 297 00:12:40,520 --> 00:12:41,520 Så int antal ;. 298 00:12:41,520 --> 00:12:42,520 Du såg det tidigare. 299 00:12:42,520 --> 00:12:44,000 Det är en variabeldeklaration. 300 00:12:44,000 --> 00:12:46,670 >> Jag har nu skapat en variabel uppringt nummer som är 301 00:12:46,670 --> 00:12:48,970 med förmåga att hålla heltal-typ-värden. 302 00:12:48,970 --> 00:12:50,210 Jag har förklarat det. 303 00:12:50,210 --> 00:12:53,770 >> Nästa rad jag tilldela ett värde till nummer. 304 00:12:53,770 --> 00:12:54,992 Nummer är lika med 17. 305 00:12:54,992 --> 00:12:55,950 Vad händer där? 306 00:12:55,950 --> 00:12:58,880 Jag sätter siffran 17 insidan av denna variabel. 307 00:12:58,880 --> 00:13:02,760 >> Så om jag någonsin sedan skriva ut vad innehållet i nummer är senare, 308 00:13:02,760 --> 00:13:04,030 de ska berätta för mig att det är 17. 309 00:13:04,030 --> 00:13:07,030 Så jag har deklarerat en variabel, och sedan har jag tilldelat den. 310 00:13:07,030 --> 00:13:10,570 >> Vi kan upprepa processen igen med röding brev ;. 311 00:13:10,570 --> 00:13:11,640 Det är en förklaring. 312 00:13:11,640 --> 00:13:14,010 Brev lika kapitalet H. Det är ett uppdrag. 313 00:13:14,010 --> 00:13:16,030 Ganska enkelt, alltför. 314 00:13:16,030 --> 00:13:18,319 >> Nu denna process kanske verkar slags dumt. 315 00:13:18,319 --> 00:13:20,110 Varför gör vi det här i två rader kod? 316 00:13:20,110 --> 00:13:21,401 Finns det ett bättre sätt att göra det? 317 00:13:21,401 --> 00:13:22,250 I själva verket finns det. 318 00:13:22,250 --> 00:13:24,375 Ibland kan du se detta kallas initiering. 319 00:13:24,375 --> 00:13:28,446 Det är när du deklarerar en variabel och tilldela ett värde på samma gång. 320 00:13:28,446 --> 00:13:30,320 Detta är faktiskt en ganska gemensam sak att göra. 321 00:13:30,320 --> 00:13:32,870 När du skapar en variabel, du vanligtvis vill att det ska ha vissa grundläggande värde. 322 00:13:32,870 --> 00:13:34,330 Även om det är 0 eller något. 323 00:13:34,330 --> 00:13:36,180 Du kan bara du ger det ett värde. 324 00:13:36,180 --> 00:13:38,360 >> Du kan initiera en variabel. 325 00:13:38,360 --> 00:13:42,320 Int nummer är lika med 17 är densamma som de första två rader kod upp ovan. 326 00:13:42,320 --> 00:13:46,829 Char bokstav motsvarar h är densamma som den tredje och fjärde rader kod ovan. 327 00:13:46,829 --> 00:13:49,620 Den viktigaste takeaway här när vi förklara och tilldela 328 00:13:49,620 --> 00:13:51,740 variabler är när vi har förklarade det, meddelande 329 00:13:51,740 --> 00:13:53,700 Jag använder inte datatyp igen. 330 00:13:53,700 --> 00:13:57,916 Jag säger inte att int nummer är lika med 17 på den andra raden av kod, till exempel. 331 00:13:57,916 --> 00:13:59,290 Jag säger bara nummer är lika med 17. 332 00:13:59,290 --> 00:14:02,537 >> Återigen, åter förklara en variabel efter du redan har förklarat det kan leda 333 00:14:02,537 --> 00:14:03,620 till någon konstig konsekvens. 334 00:14:03,620 --> 00:14:05,950 Så bara vara försiktig med det. 335 00:14:05,950 --> 00:14:06,660 >> Jag är Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Och detta är CS50. 337 00:14:08,870 --> 00:14:10,499