[Glazbom] Govornik: U redu. Tako ćemo razgovarati o još stvar koja je vrsta jedinstvena za C, što je vrsta podataka i varijabli. Kad kažem jedinstvena u C, ja stvarno znači samo u kontekstu, Ako ste bili programer za stvarno dugo vremena, ste vjerojatno ne radio s vrstama podataka Ako ste koristili moderni programskim jezicima. Moderni jezici poput PHP i JavaScript, koji je također ćemo vidjeti malo kasnije u tijeku, vi zapravo ne morate navesti Tip podataka varijable kada ga koristite. Vi samo ga prijaviti i početi koristiti ga. Ako je cijeli broj, to znam da je cijeli broj. Ako je lik, to je zna da je lik. Ako je riječ, ona zna je niz tzv. No, u C, što je stariji jezik, trebamo navesti podatke tip svake varijable da smo stvorili prvi put da koristimo tu varijablu. Dakle C dolazi s nekim ugrađene tipove podataka. I neka je upoznati s nekim od njih. I onda nakon toga također ćemo pričati malo o nekim od tipova podataka da smo pisana za vas, tako da ih možete koristiti u CS50. Prvi je int. Vrsta int podaci koriste se za varijable koje će pohraniti cjelobrojne vrijednosti. Dakle 1, 2, 3, negativna 1, 2, 3, i tako dalje. Integers, što je nešto što treba imati na umu za kviz, uvijek zauzimaju četiri bajta memorije, što je 32 bita. Postoji osam bitova u bajtu. Dakle, to znači da je raspon vrijednosti koje cijeli broj može pohraniti ograničena je ono što može stati u 32 bita u vrijednosti podataka. Sada, kao što se ispostavilo, Odavno je prošlo odlučio da bismo se razišli da niz od 32 bita u negative integers i pozitivne integers, svaki dobivanje polovice opsega. Dakle, raspon vrijednosti koje zastupamo s cjelobrojna u rasponu od negativnog 2 do 31. snage na 2 do 31. napajanja minus 1, izazvati također trebate mjesto za 0. Tako je u osnovi polovica mogućih vrijednosti što može stati u int su negativni, a pola su pozitivni. I otprilike ovdje, ovo je o negativnim 2 milijarde do pozitivnih 2 milijarde. Dati ili uzeti nekoliko stotina milijuna. Dakle, to je ono što može stati u varijablu integer. Sada imamo i nešto zove nepotpisani cijeli broj. Sada nepotpisani Ints nisu zasebna vrsta varijable. Umjesto toga, nepotpisani je ono što se zove označni. Ona mijenja podatke Vrsta cijeli broj nešto. I u ovom slučaju, što je nepotpisani means-- a također možete koristiti nepotpisane druge vrste podataka, broj nije jedini. Što je to učinkovito radi se u parovima pozitivni raspon vrijednosti da cijeli broj može preuzeti na trošak više nije igrač da se na negativne vrijednosti. Dakle, ako imate brojeve koje znate će dobiti veći od 2 milijarde manje nego od 4 milijarde, za example-- što je 2 do 32. power-- možda želite koristiti nepotpisani int, ako vas znam svoju vrijednost nikad neće biti negativan. Vi povremeno ćete imati koristi za nepotpisani varijabli u CS50, što je razlog zašto sam ga spomenuti ovdje. Ali opet, raspon vrijednosti koju može predstavljati s unsigned integer da t redovite cijeli broj, su 0 na 2 do 32. snage minus 1, ili približno 0 do 4 milijarde. Tako ste učinkovito udvostručen pozitivni niz koji možete stati, ali ste odustali sve negativne vrijednosti. Sada kao stranu, nepotpisani nije jedini označni da bismo mogli vidjeti promjenjive vrste podataka. Tu su i stvari nazivaju kratko i dugo i konst. Const ćemo vidjeti malo Nešto kasnije u tijeku. Kratko i dugo, vjerojatno neće. Ali samo znam da postoji drugi kvalifikacijski. Nepotpisani nije jedini. Ali to je samo jedan smo ćemo govoriti o sada. Dakle, sve u redu. Tako smo pokriveni integers. Što je sljedeće? Znakova. Tako znakova služe za varijable koje će pohraniti jednu znakova. Char je kratica za karaktera. A ponekad možda čujete ljudi ga izgovoriti kako je automobil. Dakle, likovi uvijek uzeti jednu bajt memorije, što je samo 8 bita. Dakle, to znači da oni mogu samo stati vrijednosti u rasponu od negativnih 2 do sedme sile, ili negativna 128, na 2 do 7. snage minus 1, ili 127. Zahvaljujući ASCII, bilo je davno odlučio način mapirati one pozitivne brojeve od 0-127 raznim likovima da sve funkcionira na našoj tipkovnici. Dakle, kao što ćemo vidjeti kasnije u tečaj, a vi ćete vjerojatno dolaze upamtiti neke točka, glavni A, za example-- znak grad A- karata na broj 65. A razlog za to je jer to je ono što je to dodijeljena od strane ASCII standardu. Mala A je 97. Lik 0 kad vas zapravo upišite karakter, ne predstavlja broj nula, je 48. Vi ćete naučiti par od njih kao i ti ići. A vi ćete sigurno doći na potrebu ih malo kasnije u CS50. Sljedeći veliki tip podataka je brojeve s pomičnim zarezom. Dakle, s pomičnim zarezom brojevi također poznat kao realnih brojeva. Oni su zapravo brojevi koji imati decimalnu točku u njima. Krajnja vrijednost poput brojeva također sadržane u roku od 4 bajta memorije. Sada nema grafikon ovdje. Nema broj linija, jer opisuje raspon plovka Nije sasvim jasno i intuitivno. Dovoljno je da vam kažem ima 32 bita raditi. A ako imate broj poput pi, koja ima cijeli dio 3, i plutajući Točka dio ili decimalni dio 0,14159, i tako dalje, morate biti mogućnosti da predstavljaju sve it-- cijeli broj dijela i decimalna dio. Dakle, što misliš, što bi moglo značiti? Jedna stvar je da ako decimalnog dio dobiva duže i duže, ako imam vrlo veliki cijeli dio, ja ne bih moći biti precizniji s decimalnim dijelom. I to je zapravo ograničenje plovka. Plovci imaju preciznost problem. Imamo samo 32 bita raditi, tako da mi samo možemo biti tako precizan s našim decimalnog dijela. Ne možemo nužno imati decimale dio precizna na 100 ili 200 znamenki, jer imamo samo 32 bita raditi. Dakle, to je ograničenje plovka. Sada srećom postoji drugi tip podataka naziva dvostruko, što donekle bavi ovim problemom. Parovi, poput kola, također se koriste za pohraniti realne brojeve ili pomičnim zarezom vrijednosti. Razlika je u tome parovi su dvokrevetne preciznosti. Oni mogu stati 64 bitova Podaci ili osam bajtova. Što to znači? Pa, to znači da može biti puno više precizan s decimalne točke. Umjesto da pi na sedam mjesta možda, s plovkom, mi možda može imati do 30 mjesta. Ako je to važno, možda želite koristiti dvostruka umjesto plovka. Uglavnom, ako ste radi na bilo što gdje ima jako dugu decimalno mjesto i puno preciznosti je važno, vjerojatno želite koristite dvostruku overfloat. Sada za većinu svog rada u CS50, plovak trebao biti dovoljan. Ali znam da parovi postoje kao način da se nešto nositi s preciznošću Problem dajući vam dodatni 32 bitova za rad s za svoje brojeve. Sada to nije vrsta podataka. To je vrsta. I to se zove nevažeće. A ja govorim o tome ovdje jer smo vjerojatno Vidio ga je nekoliko puta već u CS50. A možda se pitate ono što je sve o tome. Dakle, praznina je vrsta. To ne postoji. Ali, to nije vrsta podataka. Ne možemo stvoriti varijablu tipa poništiti i dodijeliti vrijednost na njega. No funkcije, na primjer, može imati povratnu nevažeće tip. Uglavnom, ako vidite funkciju da ima povratnu nevažeće tip, to znači da se ne vraća vrijednost. Možete li se sjetiti čest funkcija koja smo dosad koristi u CS50 da se ne vraća vrijednost? Printf je jedan. Printf zapravo ne povratak ništa za vas. Ona ispisuje nešto na zaslon, a to je u osnovi nuspojava ono printf radi. Ali to ti ne daje vrijednost vratiti. Vi ne uhvatiti rezultat i trgovinu to u nekoj varijabli ga koristiti kasnije. To samo ispisuje nešto zaslon i gotovi ste. Tako možemo reći da printf je funkcija nevažeće. Ona se vraća ništa. Popis perimetru funkcija također može biti nevažeće. A vi ste vidjeli da vrlo malo u CS50 previše. Int glavna nevažeće. Da li to zvono zvoni? Uglavnom ono što to znači je da Glavna ne poduzimati nikakve parametre. Nema argument da dobiti prošao u glavni. Sada kasnije ćemo vidjeti da postoji način da prođe argumente u glavni, ali do sada što smo Vidio je int glavna nevažeće. Glavni jednostavno ne poduzimati nikakve argumente. I tako smo naveli da je rekavši nevažeće. Mi samo se vrlo eksplicitno o tome da ne poduzimati nikakve argumente. Dakle, za sada, dovoljno je kažu da je prazninu u osnovi samo treba poslužiti kao rezervirano mjesto za vas kao razmišljanje o što je ništa. Nije zapravo radi ništa. Nema povratka vrijednosti ovdje. Nema parametara ovdje. To je nevažeće. To je malo složeniji od toga. No, to bi trebalo biti dostatno za bolji dio tečaja. I nadam se da sada imate malo nešto više od koncepta o tome što je praznina. Dakle, to su pet vrsta vi ćete Susret koji su ugrađeni u C. No, u CS50 imamo knjižnicu. CS50.h, koji možete uključiti. I koji će vam pružiti sa dvije dodatne vrste da ćete vjerojatno biti u mogućnosti koristiti na svoje zadatke, ili samo raditi općenito programiranje. Prva od njih je bool. Dakle, Boolean tip podataka, bool, koristi se za varijable koje će pohraniti Boolean vrijednost. Ako ste ikada čuli ovaj pojam prije, Možda znate da je Booleova Vrijednost je sposoban samo drži dvije različite različite vrijednosti. Istina i laž. Sada to izgleda prilično temeljno, zar ne? To je vrsta iznenađenje da je ovaj ne postoji u C kao što je izgrađen-in. I u mnogim modernim jezicima, Naravno, logičke izraze su standardni tip zadani podataka. No, u C, oni zapravo nisu. Ali mi smo ga stvorili za vas. Dakle, ako ste ikada trebati za stvaranje varijabla čija je tip bool, Samo budite sigurni da #include CS50.h na početku vašeg programa, a vi ćete biti u mogućnosti to stvoriti varijable tipa bool. Ako ste zaboravili #include CS50.h i počnete koristiti Boolean tipa varijable, možda sresti neke probleme kada ste sastavljanju svoj program. Dakle, samo se na vidikovcu za to. A možda možete jednostavno popraviti Problemi po kilogramu uključujući CS50.h. Drugi glavni tip podataka koje smo osigurati za vas u CS50 knjižnici je niz. Dakle, ono što je string? Nizovi su stvarno samo riječi. Oni su zbirke znakova. Oni su riječi. Oni su rečenice. Oni stavke. Moglo bi biti cijela knjiga, čak. Vrlo kratko i vrlo dugo Niz znakova. Ako morate koristiti žice, na primjer, za spremanje riječ, Samo budite sigurni da su CS50.h na početku vašeg programa tako da možete koristiti tipa String. A onda možete stvoriti varijabli čiji je tip podataka niz. Sada kasnije u tijeku, ćemo vidjeti da je to Ne cijela priča, bilo. Mi ćemo se susresti stvari nazivaju strukture, koji vam omogućuju da se skupine koje mogu biti cijeli broj i ogrlicu u jednu cjelinu. I možemo koristiti da za neke svrhe, što bi moglo doći u ruci kasnije u tijeku. A mi ćemo također naučiti o određenim vrstama, koji omogućuju vam da stvorite vlastite vrste podataka. Ne morate se brinuti o tome za sada. Ali samo znam da je to nešto na horizontu, da postoji mnogo više da se ove cjeline Vrsta stvar nego ti govorim samo Sada. Dakle, sada kada smo naučili malo o osnovnim podacima Vrste i tipovi CS50 podataka, neka je razgovarati o tome kako raditi s varijablama i stvoriti pomoću njih to vrste podataka u našim programima. Ako želite stvoriti varijablu, sve što trebate učiniti je dvije stvari. Prvo, morate dati ga promijeniti. Druga stvar koju trebate učiniti je dati mu ime. Nakon što ste to učinili i ošamario zarezom na kraju tog retka, ste stvorili varijablu. Dakle, evo dva primjera. Int broj; char slovo ;. Što sam učinio ovdje? Napravio sam dvije varijable. Prvo, varijabla je ime je broj. I broj je sposoban za držanje cijeli broj upišite vrijednosti, jer je njegov tip je int. Pismo je još varijabla koji se drže znakove jer mu je tip podataka char. Prilično jednostavno, zar ne? Ako se nađete u situaciji u kojoj morate stvoriti više varijable iste vrste, samo trebate odrediti Nakon što je naziv vrste. Onda samo popis onoliko varijabli tog tipa kao što je potrebno. Tako sam mogao, na primjer, ovdje u ovom trećem retku koda, kažu visina int ;, novu liniju. Int širina ;. I to će raditi previše. Ja bih uvijek dobiti dvije varijable pod nazivom Visina i širina, od kojih je svaki je cijeli broj. Ali ja smijem, stvari C sintaksu, konsolidirati ga u jednom retku. Int visina, širina; To je ista stvar. Napravio sam dvije varijable, jedna zove Visina se zove širine, od kojih oba su sposobni za gospodarstvo cjelobrojne vrijednosti tipa. Isto ovdje, ja mogu stvoriti tri s pomičnim zarezom vrijednosti odjednom. Ja možda mogu stvoriti varijablu naziva korijen 2-- koja je vjerojatno će na kraju držite plutajući point-- da je zastupljenost trgu Korijen 2-- kvadratni korijen od 3 i pi. Mogao sam to učinio na tri zasebne linije. Float, korijen 2; Float korijen 3; plutaju pi; i da će raditi previše. Ali opet, ja mogu samo učvrstiti ovo u jednu liniju koda. Čini stvari malo kraće, a ne kao nespretan. Sada u cjelini, to je dobar dizajn za samo proglasiti varijablu kada vam je potrebna. A mi ćemo govoriti malo nešto više o tome kasnije u tijeku kad smo razgovarali opseg. Dakle, ne nužno stvoriti sve svoje varijable na početku programa, koji neki ljudi mogu učiniti prošlost, ili je svakako vrlo česta Prije kodiranja praksi mnogo godina kada se radi s C. Možda će Vam upravo želite stvoriti varijablu u pravu kada vam je potrebna. U redu. Tako smo stvorili varijable. Kako ih koristiti? Nakon što smo proglasiti promjenjiva, mi ne trebaju odrediti vrste podataka te varijable više. U stvari, ako to učinite, možda ćete završiti s nekim čudnim posljedicama da ćemo nekako prijeći preko za sada. No, dovoljno je reći, čudne stvari su se događa za početak se događa ako slučajno ponovno proglasiti varijable s istim imenom više i više. Dakle, ovdje imam četiri linije koda. I ja imam par Komentari tu samo ukazuju Što se događa na svaki redak samo pomoći što se nalazi u ono što se događa. Dakle int broj ;. Vi vidjeli da je ranije. To je varijabla izjava. Sada smo stvorili varijablu nazvao broj koji je sposoban za držanje vrijednosti broj tipa. Ja sam ga proglasio. U sljedećem retku sam dodjeljivanje vrijednost na broj. Broj jednak 17. Što se događa tamo? Ja sam stavljajući broj 17 unutar tog varijable. Dakle, ako sam ikada zatim ispisati ono Sadržaj broja su kasnije, oni će mi reći da je 17. Tako sam proglasio varijablu, a onda sam ga dodjeljuje. Možemo ponoviti postupak opet s char slovo ;. To je izjava. Pismo jednak kapital H. To je zadatak. Prilično jednostavan, previše. Sada ovaj proces može Čini vrsta glup. Zašto ovo radimo u dvije linije koda? Postoji li bolji način za to učiniti? U stvari, ne postoji. Ponekad možete vidjeti to se zove inicijalizaciju. To je kada se deklarirati varijablu i dodijeliti vrijednost u isto vrijeme. To je zapravo prilično uobičajena stvar za napraviti. Kada stvorite varijablu, obično želite imati neke osnovne vrijednosti. Čak i ako je 0 ili nešto. Vi samo ćete dati mu vrijednost. Možete inicijalizirati varijablu. Int broj jednak 17 je isto kao i Prve dvije linije koda iznad. Char slovo jednak h je ista kao Treća i četvrta linija koda iznad. Najvažniji takeaway ovdje kada smo proglašenja i dodjela varijable je nakon što ste objavio obavijest Nisam ponovo na vrstu podataka. Ne kažem int broj jednak 17 na druga linija koda, npr. Samo kažem broj jednak 17. Opet, ponovno izjavljuje varijablu nakon ste već proglasila to može dovesti na neki čudan posljedica. Dakle, samo budite oprezni da. Ja sam Doug Lloyd. A to je CS50.