1 00:00:00,000 --> 00:00:02,420 >> [MUSIC SPILLE] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 SPEAKER: All right. 4 00:00:05,980 --> 00:00:08,540 Så la oss snakke om en annen Det som er litt unikt for C, 5 00:00:08,540 --> 00:00:10,010 som er datatyper og variabler. 6 00:00:10,010 --> 00:00:12,340 Når jeg sier unik for C, jeg virkelig bare bety i sammenheng med, 7 00:00:12,340 --> 00:00:14,470 hvis du har vært en programmerer for en veldig lang tid, 8 00:00:14,470 --> 00:00:16,270 du har sannsynligvis ikke jobbet med datatyper 9 00:00:16,270 --> 00:00:18,470 hvis du har brukt moderne programmeringsspråk. 10 00:00:18,470 --> 00:00:20,432 Moderne språk som PHP og Javascript, 11 00:00:20,432 --> 00:00:22,640 som vi vil også se litt senere i kurset, 12 00:00:22,640 --> 00:00:25,550 du trenger faktisk ikke å spesifisere datatypen til en variabel 13 00:00:25,550 --> 00:00:26,270 når du bruker den. 14 00:00:26,270 --> 00:00:28,067 >> Du bare erklære den og begynne å bruke den. 15 00:00:28,067 --> 00:00:29,900 Hvis det er et heltall, det vet det er et heltall. 16 00:00:29,900 --> 00:00:31,960 Hvis det er en karakter, er det vet at det er et tegn. 17 00:00:31,960 --> 00:00:35,320 Hvis det er et ord, det vet det er en streng, såkalte. 18 00:00:35,320 --> 00:00:37,300 >> Men i C, som er en eldre språk, trenger vi 19 00:00:37,300 --> 00:00:39,420 å spesifisere data type hver variabel 20 00:00:39,420 --> 00:00:42,990 at vi skaper første gang at vi bruker den variabelen. 21 00:00:42,990 --> 00:00:45,030 Så C kommer med noen innebygde datatyper. 22 00:00:45,030 --> 00:00:46,972 Og la oss bli kjent med noen av dem. 23 00:00:46,972 --> 00:00:50,180 Og så etterpå skal vi også snakke litt om noen av de datatyper 24 00:00:50,180 --> 00:00:54,450 som vi har skrevet for deg, slik at du kan bruke dem i CS50. 25 00:00:54,450 --> 00:00:56,130 >> Den første er int. 26 00:00:56,130 --> 00:00:59,110 Int datatype brukes for variabler som vil lagre heltallsverdier. 27 00:00:59,110 --> 00:01:03,210 So 1, 2, 3, negativ 1, 2, 3, og så videre. 28 00:01:03,210 --> 00:01:05,960 Heltall, som er noe du bør huske på for quiz, 29 00:01:05,960 --> 00:01:09,590 alltid ta opp fire bytes av minne, som er 32 biter. 30 00:01:09,590 --> 00:01:11,620 Det er åtte bits i en byte. 31 00:01:11,620 --> 00:01:14,470 >> Så dette betyr at omfanget av verdier som et heltall kan lagre 32 00:01:14,470 --> 00:01:19,130 er begrenset av hva som kan passe inn i 32 biter igjen av informasjon. 33 00:01:19,130 --> 00:01:21,850 Nå som det viser seg, det var lenge siden bestemte 34 00:01:21,850 --> 00:01:24,310 at vi skulle splittes opp dette området av 32 biter 35 00:01:24,310 --> 00:01:26,650 inn negativheltall og positive heltall, 36 00:01:26,650 --> 00:01:28,390 hver får halvparten av området. 37 00:01:28,390 --> 00:01:32,230 Så verdiområdet som vi representerer med et tall varierer fra negative 2 38 00:01:32,230 --> 00:01:36,520 til den 31 kraft til to til 31. makt minus 1, 39 00:01:36,520 --> 00:01:38,190 føre til at du trenger også et sted for 0. 40 00:01:38,190 --> 00:01:41,650 >> Så i utgangspunktet halvparten av de mulige verdier du får plass til i en int er negative, 41 00:01:41,650 --> 00:01:42,610 og halvparten er positive. 42 00:01:42,610 --> 00:01:47,270 Og omtrent her, dette handler om negative 2 milliarder til om positiv 2 milliarder. 43 00:01:47,270 --> 00:01:50,207 Gi eller ta et par hundre millioner kroner. 44 00:01:50,207 --> 00:01:52,290 Så det er hva du kan passe i et heltall variabel. 45 00:01:52,290 --> 00:01:55,490 Nå har vi også noe kalt en usignert heltall. 46 00:01:55,490 --> 00:01:59,220 Nå usignerte ints er ikke en egen type variabel. 47 00:01:59,220 --> 00:02:01,590 Snarere er usignert det som kalles en kvalifiseringskamp. 48 00:02:01,590 --> 00:02:04,990 Det endrer data type heltall litt. 49 00:02:04,990 --> 00:02:07,850 >> Og i dette tilfelle, hva usignert means-- og du kan også 50 00:02:07,850 --> 00:02:11,530 bruke usignerte andre datatyper, heltall er ikke den eneste. 51 00:02:11,530 --> 00:02:15,310 Hva det effektivt gjør er dobles den positive verdiområde 52 00:02:15,310 --> 00:02:19,350 som et heltall kan ta på i det bekostning av ikke lenger å tillate 53 00:02:19,350 --> 00:02:21,140 deg å ta på negative verdier. 54 00:02:21,140 --> 00:02:25,400 Så hvis du har tall som du vet vil få høyere enn 2 milliarder, men mindre 55 00:02:25,400 --> 00:02:31,280 enn 4 milliarder kroner, for example-- som er 2 til den 32. power-- 56 00:02:31,280 --> 00:02:33,330 kan det være lurt å bruke en usignert int hvis du 57 00:02:33,330 --> 00:02:35,050 vet at verdien vil aldri bli negativ. 58 00:02:35,050 --> 00:02:37,216 >> Du vil tidvis ha brukes for usignerte variabler 59 00:02:37,216 --> 00:02:39,460 i CS50, og det er derfor jeg nevner det her. 60 00:02:39,460 --> 00:02:43,830 Men igjen, verdiområdet som du kan representere med en usignert heltall 61 00:02:43,830 --> 00:02:48,240 som til t vanlig heltall, er 0 til 2 til den 32. makt minus 1, 62 00:02:48,240 --> 00:02:50,840 eller ca 0-4 milliarder. 63 00:02:50,840 --> 00:02:53,730 Så du har effektivt doblet positiv utvalg som du kan passe, 64 00:02:53,730 --> 00:02:56,270 men du har gitt opp alt negative verdier. 65 00:02:56,270 --> 00:03:00,040 >> Nå som en side, usignert er ikke den eneste kvalifiseringskamp 66 00:03:00,040 --> 00:03:01,790 at vi kan se for variable datatyper. 67 00:03:01,790 --> 00:03:05,779 Det er også ting som kalles kort og lang og konst. 68 00:03:05,779 --> 00:03:07,820 Konst vi får se litt litt senere i kurset. 69 00:03:07,820 --> 00:03:10,830 Kort og lang, vi vil sannsynligvis ikke. 70 00:03:10,830 --> 00:03:12,830 >> Men bare vet at det er andre kvalifiseringskamper. 71 00:03:12,830 --> 00:03:14,080 Usignert er ikke den eneste. 72 00:03:14,080 --> 00:03:16,596 Men det er den eneste vi er kommer til å snakke om akkurat nå. 73 00:03:16,596 --> 00:03:17,310 Så all right. 74 00:03:17,310 --> 00:03:18,393 Så vi har dekket heltall. 75 00:03:18,393 --> 00:03:19,200 Hva blir det neste? 76 00:03:19,200 --> 00:03:20,130 >> Chars. 77 00:03:20,130 --> 00:03:23,620 Så tegn benyttes for variable som vil lagre enkelt tegn. 78 00:03:23,620 --> 00:03:24,850 Røye er en forkortelse for karakter. 79 00:03:24,850 --> 00:03:27,870 Og noen ganger du kan høre folk uttale det som bilen. 80 00:03:27,870 --> 00:03:32,020 >> Så tegnene alltid ta opp ett byte minne, som er bare 8 bits. 81 00:03:32,020 --> 00:03:35,700 Så dette betyr at de bare kan passe verdier i området fra 2 negative 82 00:03:35,700 --> 00:03:42,430 til den sjuende strøm, eller negativ 128, til 2 til syvende makt minus 1, eller 127. 83 00:03:42,430 --> 00:03:45,710 >> Takket være ASCII, det var lenge siden bestemte en måte 84 00:03:45,710 --> 00:03:50,805 å kartlegge de positive tallene fra 0-127 til ulike tegn 85 00:03:50,805 --> 00:03:52,182 som alle finnes på våre tastatur. 86 00:03:52,182 --> 00:03:54,640 Så som vi skal se senere i kurset, og du vil sannsynligvis 87 00:03:54,640 --> 00:03:57,700 kommer til å huske på noen punkt, kapital A, for example-- 88 00:03:57,700 --> 00:04:00,732 tegnet kapital A-- kart til nummer 65. 89 00:04:00,732 --> 00:04:02,940 Og grunnen til det er fordi det er det som det er 90 00:04:02,940 --> 00:04:05,490 blitt tildelt av ASCII-standarden. 91 00:04:05,490 --> 00:04:07,850 >> Små bokstaver A er 97. 92 00:04:07,850 --> 00:04:11,900 Tegnet 0 for når du faktisk tegnet, ikke 93 00:04:11,900 --> 00:04:13,532 representerer tallet null, er 48. 94 00:04:13,532 --> 00:04:15,240 Du vil lære et par av disse som du går. 95 00:04:15,240 --> 00:04:17,990 Og du vil sikkert komme til å trenge dem litt senere i CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Den neste store datatype er flyttall. 98 00:04:23,390 --> 00:04:26,100 Så flyttall er også kjent som reelle tall. 99 00:04:26,100 --> 00:04:28,850 De er i utgangspunktet tall som har desimaltegn i dem. 100 00:04:28,850 --> 00:04:33,360 Flyt verdier som heltall er også 101 00:04:33,360 --> 00:04:36,090 inneholdt innen 4 byte minne. 102 00:04:36,090 --> 00:04:37,580 Nå er det ingen kart her. 103 00:04:37,580 --> 00:04:40,890 Det finnes ingen tall linje, fordi beskrive omfanget av en flottør 104 00:04:40,890 --> 00:04:44,550 er ikke helt klart, eller intuitivt. 105 00:04:44,550 --> 00:04:47,350 >> Det er nok å si at du har 32 bits å jobbe med. 106 00:04:47,350 --> 00:04:49,730 Og hvis du har en rekke som pi, som har 107 00:04:49,730 --> 00:04:55,510 et heltall del 3, og en flytende punktet del, eller desimal del 0,14159, 108 00:04:55,510 --> 00:04:58,735 og så videre, må du være i stand til å representere alle it-- 109 00:04:58,735 --> 00:05:02,420 heltallsdelen og desimal del. 110 00:05:02,420 --> 00:05:04,550 >> Så hva tror du det kan bety? 111 00:05:04,550 --> 00:05:08,180 En ting er at hvis desimal del blir lengre og lengre, 112 00:05:08,180 --> 00:05:10,660 hvis jeg har en veldig stor heltall del, kanskje jeg ikke 113 00:05:10,660 --> 00:05:13,090 være i stand til å være så presis med desimal del. 114 00:05:13,090 --> 00:05:15,280 Og det er egentlig det begrensning av en flottør. 115 00:05:15,280 --> 00:05:17,229 >> Flyter har en presisjon problem. 116 00:05:17,229 --> 00:05:19,270 Vi har bare 32 bits til jobbe med, så vi kan bare 117 00:05:19,270 --> 00:05:22,510 være så presis med vår desimal del. 118 00:05:22,510 --> 00:05:27,300 Vi kan ikke nødvendigvis har en desimal del presis til 100 eller 200 sifre, 119 00:05:27,300 --> 00:05:29,710 fordi vi bare har 32 biter å jobbe med. 120 00:05:29,710 --> 00:05:31,590 Så det er en begrensning av en flåte. 121 00:05:31,590 --> 00:05:33,590 >> Nå heldigvis er det en annen datatype kalt 122 00:05:33,590 --> 00:05:36,530 dobbel, som noe omhandler dette problemet. 123 00:05:36,530 --> 00:05:39,980 Dobler, som flyter, blir også brukt til å lagre reelle tall eller flyttall 124 00:05:39,980 --> 00:05:40,840 verdier. 125 00:05:40,840 --> 00:05:44,340 Forskjellen er at dobles er dobbel presisjon. 126 00:05:44,340 --> 00:05:48,177 De kan passe 64 biter av data, eller åtte bytes. 127 00:05:48,177 --> 00:05:49,010 Hva betyr det? 128 00:05:49,010 --> 00:05:51,801 Vel, betyr det at vi kan være mye mer presis med komma. 129 00:05:51,801 --> 00:05:54,830 I stedet for å pi til syv steder kanskje, med en dupp, 130 00:05:54,830 --> 00:05:56,710 vi kan kanskje få den til 30 plasser. 131 00:05:56,710 --> 00:05:59,824 Hvis det er viktig, kan det være lurt å bruke en dobbel i stedet for en flottør. 132 00:05:59,824 --> 00:06:01,740 I utgangspunktet, hvis du er jobber med noe der 133 00:06:01,740 --> 00:06:06,540 å ha en veldig lang desimal og mye presisjon er viktig, 134 00:06:06,540 --> 00:06:08,630 du sannsynligvis vil ta en dobbelt overfloat. 135 00:06:08,630 --> 00:06:11,250 Nå for det meste av arbeidet i CS50, bør en dupp nok. 136 00:06:11,250 --> 00:06:15,340 Men vet at dobler eksistere som en måte å håndtere noe med presisjonen 137 00:06:15,340 --> 00:06:20,980 problemet ved å gi deg en ekstra 32 bits å jobbe med for dine tall. 138 00:06:20,980 --> 00:06:23,650 >> Nå er ikke dette en datatype. 139 00:06:23,650 --> 00:06:24,390 Dette er en type. 140 00:06:24,390 --> 00:06:25,340 Og det heter ugyldig. 141 00:06:25,340 --> 00:06:27,506 Og jeg snakker om det her fordi vi har sannsynligvis 142 00:06:27,506 --> 00:06:29,520 sett den et par ganger allerede i CS50. 143 00:06:29,520 --> 00:06:32,020 Og lurer du kanskje på hva det handler om. 144 00:06:32,020 --> 00:06:33,390 >> Så void er en type. 145 00:06:33,390 --> 00:06:34,097 Det eksisterer. 146 00:06:34,097 --> 00:06:35,180 Men det er ikke en datatype. 147 00:06:35,180 --> 00:06:39,350 >> Vi kan ikke lage en variabel av type ugyldig og tilordne en verdi til det. 148 00:06:39,350 --> 00:06:42,519 Men funksjoner, f.eks kan ha et tomrom returtype. 149 00:06:42,519 --> 00:06:45,060 I utgangspunktet, hvis du ser en funksjon som har et tomrom returtype, 150 00:06:45,060 --> 00:06:46,970 det betyr at det ikke returnerer en verdi. 151 00:06:46,970 --> 00:06:49,440 Kan du tenke på en felles funksjon som vi har brukt så langt 152 00:06:49,440 --> 00:06:52,780 i CS50 som ikke returnerer en verdi? 153 00:06:52,780 --> 00:06:54,700 >> Printf er ett. 154 00:06:54,700 --> 00:06:56,820 Printf faktisk ikke tilbake noe til deg. 155 00:06:56,820 --> 00:06:59,850 Den skriver noe til skjermen, og det er i utgangspunktet 156 00:06:59,850 --> 00:07:01,650 en bivirkning av hva printf gjør. 157 00:07:01,650 --> 00:07:03,620 Men det trenger ikke gi deg en verdi tilbake. 158 00:07:03,620 --> 00:07:08,419 Du trenger ikke ta resultatet og butikk det i noen variabel for å bruke det senere. 159 00:07:08,419 --> 00:07:10,710 Den skriver bare noe å skjermen og du er ferdig. 160 00:07:10,710 --> 00:07:14,360 >> Så vi sier at printf er et tomrom funksjon. 161 00:07:14,360 --> 00:07:16,450 Den returnerer ingenting. 162 00:07:16,450 --> 00:07:18,580 >> Omkretsen liste over en Funksjonen kan også være ugyldige. 163 00:07:18,580 --> 00:07:21,410 Og du har også sett at mye i CS50 også. 164 00:07:21,410 --> 00:07:22,300 Int main ugyldig. 165 00:07:22,300 --> 00:07:23,260 Betyr det ringe en bjelle? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 I utgangspunktet hva det betyr er at Hoved ikke tar noen parametere. 168 00:07:27,220 --> 00:07:29,520 Det er ingen argument at få gått inn hoved. 169 00:07:29,520 --> 00:07:32,780 Nå senere skal vi se at det er en måte å passere argumenter inn i main, 170 00:07:32,780 --> 00:07:36,189 men så langt har det vi har sett er int main ugyldig. 171 00:07:36,189 --> 00:07:37,730 Hoved bare ikke tar noen argumenter. 172 00:07:37,730 --> 00:07:40,236 Og så vi spesifisere at ved å si annullert. 173 00:07:40,236 --> 00:07:42,110 Vi er bare å være veldig eksplisitt om det faktum 174 00:07:42,110 --> 00:07:44,430 at det ikke tar noen argumenter. 175 00:07:44,430 --> 00:07:47,160 >> Så for nå, er nok å si at tomrommet i utgangspunktet 176 00:07:47,160 --> 00:07:50,789 skal bare tjene som en plassholder for deg som tenker på som ingenting. 177 00:07:50,789 --> 00:07:52,080 Det er egentlig ikke gjør noe. 178 00:07:52,080 --> 00:07:53,550 Det er ingen returverdi her. 179 00:07:53,550 --> 00:07:54,770 Det finnes ingen parametere her. 180 00:07:54,770 --> 00:07:55,709 Det er ugyldig. 181 00:07:55,709 --> 00:07:57,250 Det er litt mer komplisert enn som så. 182 00:07:57,250 --> 00:08:00,640 Men dette bør være tilstrekkelig for den bedre delen av kurset. 183 00:08:00,640 --> 00:08:05,010 Og forhåpentligvis nå du har en liten litt mer av et begrep om hva tomrommet er. 184 00:08:05,010 --> 00:08:08,460 >> Så de er de fem typene du vil møte som er innebygd i C. 185 00:08:08,460 --> 00:08:10,670 Men i CS50 vi har også et bibliotek. 186 00:08:10,670 --> 00:08:13,550 CS50.h, som du kan inkludere. 187 00:08:13,550 --> 00:08:15,930 Og som vil gi deg med ytterligere to typene 188 00:08:15,930 --> 00:08:18,280 at du vil sannsynligvis kunne å bruke på oppdrag, 189 00:08:18,280 --> 00:08:21,210 eller bare jobbe generelt programmering. 190 00:08:21,210 --> 00:08:23,030 >> Den første av disse er bool. 191 00:08:23,030 --> 00:08:26,780 Så boolsk datatype, bool, blir brukt for variabler 192 00:08:26,780 --> 00:08:28,114 som vil lagre en boolsk verdi. 193 00:08:28,114 --> 00:08:29,863 Hvis du noen gang har hørt dette begrepet før, du 194 00:08:29,863 --> 00:08:31,960 kunne vite at en boolsk verdien er i stand til bare 195 00:08:31,960 --> 00:08:34,440 holde to forskjellige distinkte verdier. 196 00:08:34,440 --> 00:08:35,872 Sant og usant. 197 00:08:35,872 --> 00:08:37,580 Nå virker ganske fundamental, ikke sant? 198 00:08:37,580 --> 00:08:40,496 Det er litt av en overraskelse at dette ikke eksisterer i C som det er innebygd. 199 00:08:40,496 --> 00:08:42,640 Og i mange moderne språk, Selvfølgelig Booleans 200 00:08:42,640 --> 00:08:45,390 er en standard standard datatype. 201 00:08:45,390 --> 00:08:47,192 Men i C, er de faktisk ikke. 202 00:08:47,192 --> 00:08:48,400 Men vi har laget det for deg. 203 00:08:48,400 --> 00:08:51,910 Så hvis du noen gang trenger for å lage en variabel med type er bool, 204 00:08:51,910 --> 00:08:55,230 bare sørg for å #include CS50.h i begynnelsen av programmet, 205 00:08:55,230 --> 00:08:57,800 og du vil være i stand til å skape variabler av bool type. 206 00:08:57,800 --> 00:09:02,095 >> Hvis du glemmer å #include CS50.h, og du begynner å bruke boolsk-type variabler, 207 00:09:02,095 --> 00:09:04,970 du kan støte på noen problemer når du kompilere programmet. 208 00:09:04,970 --> 00:09:06,490 Så bare være på utkikk etter det. 209 00:09:06,490 --> 00:09:11,180 Og kanskje kan du bare fikse problemer ved pund inkludert CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Den andre store datatype som vi forsørge deg i CS50 biblioteket 211 00:09:14,590 --> 00:09:15,670 er streng. 212 00:09:15,670 --> 00:09:17,130 Så hva er en streng? 213 00:09:17,130 --> 00:09:18,520 Strenger er egentlig bare ord. 214 00:09:18,520 --> 00:09:20,000 De er samlinger av tegn. 215 00:09:20,000 --> 00:09:20,640 De er ord. 216 00:09:20,640 --> 00:09:21,390 De er setninger. 217 00:09:21,390 --> 00:09:22,480 De er avsnitt. 218 00:09:22,480 --> 00:09:25,850 Kan være hele bøker, selv. 219 00:09:25,850 --> 00:09:29,690 >> Svært kort til veldig lenge serie tegn. 220 00:09:29,690 --> 00:09:34,310 Hvis du trenger å bruke strenger, for eksempel, for å lagre et ord, 221 00:09:34,310 --> 00:09:37,609 bare sørg for å inkludere CS50.h i begynnelsen av programmet 222 00:09:37,609 --> 00:09:38,900 slik at du kan bruke streng type. 223 00:09:38,900 --> 00:09:43,910 Og så kan du lage variabler med datatype er streng. 224 00:09:43,910 --> 00:09:46,160 Nå senere i kurset, Vi vil også se at det er 225 00:09:46,160 --> 00:09:47,752 ikke hele historien, heller. 226 00:09:47,752 --> 00:09:49,460 Vi vil støte ting kalt strukturer, 227 00:09:49,460 --> 00:09:54,249 som lar deg gruppere hva som kan være et helt tall og en streng til en enhet. 228 00:09:54,249 --> 00:09:56,290 Og vi kan bruke det for noen formål, noe som kanskje 229 00:09:56,290 --> 00:09:57,750 komme godt med senere i kurset. 230 00:09:57,750 --> 00:09:59,500 >> Og vi vil også lære om definerte typer, 231 00:09:59,500 --> 00:10:01,720 som lar deg lage dine egne datatyper. 232 00:10:01,720 --> 00:10:03,060 Vi trenger ikke å bekymre deg om det for nå. 233 00:10:03,060 --> 00:10:04,550 Men bare vet at det er noe i horisonten, 234 00:10:04,550 --> 00:10:07,633 at det er mye mer til dette hele type ting enn jeg forteller deg bare 235 00:10:07,633 --> 00:10:08,133 nå. 236 00:10:08,133 --> 00:10:10,591 Så nå som vi har lært litt om grunnleggende data 237 00:10:10,591 --> 00:10:14,230 typer og de CS50 datatyper, la oss snakke om hvordan du arbeider med variabler 238 00:10:14,230 --> 00:10:18,530 og lage dem ved hjelp av disse datatyper i våre programmer. 239 00:10:18,530 --> 00:10:22,670 Hvis du ønsker å opprette en variabel, alt du trenger å gjøre er to ting. 240 00:10:22,670 --> 00:10:24,147 >> Først må du gi den en type. 241 00:10:24,147 --> 00:10:26,230 Den andre tingen du trenger å gjøre er å gi den et navn. 242 00:10:26,230 --> 00:10:28,740 Når du har gjort det, og slo en semikolon ved enden av linjen, 243 00:10:28,740 --> 00:10:29,830 du har opprettet en variabel. 244 00:10:29,830 --> 00:10:32,370 >> Så her er to eksempler. 245 00:10:32,370 --> 00:10:35,744 Int nummer, røye brev ;. 246 00:10:35,744 --> 00:10:36,660 Hva har jeg gjort her? 247 00:10:36,660 --> 00:10:38,110 Jeg har laget to variabler. 248 00:10:38,110 --> 00:10:40,190 >> Den første, variabelens Navnet er nummer. 249 00:10:40,190 --> 00:10:44,830 Og antall er i stand til å holde heltall skriv verdier, fordi denne typen er int. 250 00:10:44,830 --> 00:10:48,040 Letter er en annen variabel som kan holde tegn 251 00:10:48,040 --> 00:10:50,240 fordi datatypen er røye. 252 00:10:50,240 --> 00:10:51,772 >> Ganske grei, ikke sant? 253 00:10:51,772 --> 00:10:53,480 Hvis du finner deg selv i en situasjon der 254 00:10:53,480 --> 00:10:56,250 du trenger for å lage flere variabler av samme type, 255 00:10:56,250 --> 00:10:58,740 du trenger bare å spesifisere typenavnet en gang. 256 00:10:58,740 --> 00:11:01,600 Så bare liste så mange variabler av den typen som du trenger. 257 00:11:01,600 --> 00:11:04,230 >> Så jeg kunne for eksempel, her i denne tredje linje med kode, 258 00:11:04,230 --> 00:11:07,420 si int høyde ;, ny linje. 259 00:11:07,420 --> 00:11:08,291 Int bredde ;. 260 00:11:08,291 --> 00:11:09,290 Og det ville fungere også. 261 00:11:09,290 --> 00:11:12,039 Jeg vil fortsatt få to variabler kalt høyde og bredde, som hvert 262 00:11:12,039 --> 00:11:12,730 er et helt tall. 263 00:11:12,730 --> 00:11:16,970 Men jeg har lov til, ting til C syntaks, konsolidere den inn i en enkelt linje. 264 00:11:16,970 --> 00:11:20,230 Int høyde, bredde; Det er det samme. 265 00:11:20,230 --> 00:11:23,900 Jeg har laget to variabler, en som heter en høyde kalt bredde, som begge 266 00:11:23,900 --> 00:11:26,730 er i stand til holde heltallstype verdier. 267 00:11:26,730 --> 00:11:30,920 >> Tilsvar her, kan jeg lage tre flyt verdier på en gang. 268 00:11:30,920 --> 00:11:33,350 Jeg kan kanskje lage en variabel kalles kvadratroten av 2-- 269 00:11:33,350 --> 00:11:35,766 som antagelig vil til slutt holde den flytende point-- 270 00:11:35,766 --> 00:11:39,222 som representasjon av plassen roten av 2-- kvadratroten av tre, og pi. 271 00:11:39,222 --> 00:11:41,180 Jeg kunne ha gjort dette på tre separate linjer. 272 00:11:41,180 --> 00:11:47,690 Float, kvadratrot 2; Flyte kvadratrot 3; flyte pi; og som ville fungere også. 273 00:11:47,690 --> 00:11:50,590 >> Men igjen, jeg kan bare konsolidere dette til en eneste linje med kode. 274 00:11:50,590 --> 00:11:54,050 Gjør ting litt kortere, ikke så klumpete. 275 00:11:54,050 --> 00:11:57,259 >> Nå generelt, er det godt design for å bare erklære en variabel når du trenger det. 276 00:11:57,259 --> 00:11:59,050 Og vi skal snakke litt litt mer om det 277 00:11:59,050 --> 00:12:00,945 senere i kurset når vi diskuterer omfang. 278 00:12:00,945 --> 00:12:03,320 Så ikke nødvendigvis trenger å skape alle dine variabler 279 00:12:03,320 --> 00:12:05,990 ved begynnelsen av programmet, hvilken noen mennesker kan ha gjort tidligere, 280 00:12:05,990 --> 00:12:08,700 eller var sikkert en veldig vanlig koding praksis for mange år siden 281 00:12:08,700 --> 00:12:11,700 når du arbeider med C. Du kan bare ønsker å opprette en variabel rett når 282 00:12:11,700 --> 00:12:13,140 du trenger det. 283 00:12:13,140 --> 00:12:13,640 Greit. 284 00:12:13,640 --> 00:12:15,150 Så vi har laget variabler. 285 00:12:15,150 --> 00:12:16,790 Hvordan bruker vi dem? 286 00:12:16,790 --> 00:12:18,650 Etter at vi erklære en variabel, trenger vi ikke 287 00:12:18,650 --> 00:12:21,237 å spesifisere datatypen av den variabelen lenger. 288 00:12:21,237 --> 00:12:24,070 Faktisk, hvis du gjør det, kan du ende opp med noen rare konsekvenser 289 00:12:24,070 --> 00:12:25,490 at vi vil slags glans over for denne gang. 290 00:12:25,490 --> 00:12:27,365 Men nok det å si, rare ting går 291 00:12:27,365 --> 00:12:30,740 å begynner å skje hvis du ved en feiltakelse re-erklære variabler med samme navn 292 00:12:30,740 --> 00:12:32,210 igjen og igjen. 293 00:12:32,210 --> 00:12:33,882 >> Så her har jeg fire linjer med kode. 294 00:12:33,882 --> 00:12:36,090 Og jeg har et par kommentarer der bare indikerer 295 00:12:36,090 --> 00:12:37,840 hva som skjer på hver linje bare for å hjelpe 296 00:12:37,840 --> 00:12:40,520 du få ligger i hva som skjer. 297 00:12:40,520 --> 00:12:41,520 Så int nummer ;. 298 00:12:41,520 --> 00:12:42,520 Du så at tidligere. 299 00:12:42,520 --> 00:12:44,000 Det er en variabeldeklarasjon. 300 00:12:44,000 --> 00:12:46,670 >> Jeg har nå opprettet en variabel ringte nummeret som er 301 00:12:46,670 --> 00:12:48,970 stand til å holde heltall-type verdier. 302 00:12:48,970 --> 00:12:50,210 Jeg har erklært den. 303 00:12:50,210 --> 00:12:53,770 >> Den neste linjen jeg tildele en verdi til nummer. 304 00:12:53,770 --> 00:12:54,992 Antall tilsvarer 17. 305 00:12:54,992 --> 00:12:55,950 Hva skjer der? 306 00:12:55,950 --> 00:12:58,880 Jeg setter nummer 17 Innsiden av den variable. 307 00:12:58,880 --> 00:13:02,760 >> Så hvis jeg noen gang deretter skrive ut hva innholdet i antallet er senere, 308 00:13:02,760 --> 00:13:04,030 de vil si at det er 17. 309 00:13:04,030 --> 00:13:07,030 Så jeg har erklært en variabel, og da har jeg tildelt den. 310 00:13:07,030 --> 00:13:10,570 >> Vi kan gjenta prosessen igjen med røye brev ;. 311 00:13:10,570 --> 00:13:11,640 Det er en erklæring. 312 00:13:11,640 --> 00:13:14,010 Letter tilsvarer kapital H. Det er et oppdrag. 313 00:13:14,010 --> 00:13:16,030 Ganske grei, også. 314 00:13:16,030 --> 00:13:18,319 >> Nå er denne prosessen kan virke litt dum. 315 00:13:18,319 --> 00:13:20,110 Hvorfor gjør vi dette i to linjer med kode? 316 00:13:20,110 --> 00:13:21,401 Finnes det en bedre måte å gjøre det? 317 00:13:21,401 --> 00:13:22,250 Faktisk er det. 318 00:13:22,250 --> 00:13:24,375 Noen ganger kan du se dette kalles initialisering. 319 00:13:24,375 --> 00:13:28,446 Det er når du deklarerer en variabel og å tilordne en verdi på samme tid. 320 00:13:28,446 --> 00:13:30,320 Dette er faktisk en ganske vanlig ting å gjøre. 321 00:13:30,320 --> 00:13:32,870 Når du oppretter en variabel, du vanligvis vil at det skal ha noen grunnleggende verdi. 322 00:13:32,870 --> 00:13:34,330 Selv om det er 0 eller noe. 323 00:13:34,330 --> 00:13:36,180 Du bare du gir det en verdi. 324 00:13:36,180 --> 00:13:38,360 >> Du kan initialisere en variabel. 325 00:13:38,360 --> 00:13:42,320 Int tall tilsvarer 17 er den samme som de første to linjer med kode opp ovenfor. 326 00:13:42,320 --> 00:13:46,829 Char bokstav er lik h er den samme som den tredje og fjerde linjer med kode ovenfor. 327 00:13:46,829 --> 00:13:49,620 Det viktigste takeaway her når vi erklære og tilordne 328 00:13:49,620 --> 00:13:51,740 variablene er etter at vi har erklærte den, varsel 329 00:13:51,740 --> 00:13:53,700 Jeg bruker ikke datatypen igjen. 330 00:13:53,700 --> 00:13:57,916 Jeg sier ikke int antall tilsvarer 17 på den andre linjen med kode, for eksempel. 331 00:13:57,916 --> 00:13:59,290 Jeg sier bare nummer tilsvarer 17. 332 00:13:59,290 --> 00:14:02,537 >> Igjen, re-erklære en variabel etter du allerede har erklært det kan føre 333 00:14:02,537 --> 00:14:03,620 til noen rare konsekvens. 334 00:14:03,620 --> 00:14:05,950 Så bare være forsiktig med det. 335 00:14:05,950 --> 00:14:06,660 >> Jeg er Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 Og dette er CS50. 337 00:14:08,870 --> 00:14:10,499