[Musiikkia] SPEAKER: Selvä. Joten puhua toisesta asia, joka on tavallaan ainutlaatuinen C, joka on tietotyypit ja muuttujat. Kun sanon ainutlaatuinen C, en todellakaan tarkoittaa vain yhteydessä, jos olet ollut ohjelmoija sillä todella pitkään, olet todennäköisesti ei työskennellyt tietotyypit jos olet käyttänyt moderni ohjelmointikieliä. Vieraat kielet kuten PHP ja JavaScript, joka me myös nähdä hieman myöhemmin kurssin, et itse tarvitse määrittää tietotyyppi muuttujan kun käytät sitä. Sinä vain julistaa, että se ja alkaa käyttää sitä. Jos se on kokonaisluku, se tietää se kokonaisluku. Jos se on merkki, se on tietää se hahmo. Jos se sana, se tietää se on merkkijono, niin kutsuttu. Mutta C, joka on vanhemmat kieli, tarvitsemme määrittää tiedot tyyppi jokaisen muuttujan että luomme ensimmäistä kertaa että käytämme että muuttujaa. Joten C tulee joitakin sisäänrakennettu tietotyypit. Ja nyt tutustutaan joitakin näistä. Ja sitten myöhemmin me myös puhua hieman joistakin tietotyypit että olemme kirjoitettu sinulle, joten voit käyttää niitä CS50. Ensimmäinen on int. Int tietotyyppi käytetään muuttujien joka tallentaa kokonaisluku arvoja. Niin 1, 2, 3, negatiivinen 1, 2, 3, ja niin edelleen. Kokonaisluvut, joka on jotain pitäisi pitää mielessä tietokilpailu, aina neljä tavua muistin, joka on 32 bittiä. On kahdeksan bittiä tavu. Niin tämä tarkoittaa sitä, että erilaisia arvostaa, että kokonaisluku voidaan tallentaa rajoittaa mitä mahtuu sisällä 32 bittiä arvoinen tietoja. Nyt kun on käynyt ilmi, se oli kauan sitten päätetty että olisimme jakaa että valikoima 32 bittiä osaksi negatiivisia kokonaislukuja ja positiivisia kokonaislukuja, kukin saada puolet alue. Joten arvoalue me edustamme jossa kokonaisluku välillä negatiivinen 2 ja 31. valtaa 2 31. teho miinus 1, aiheuttaa sinun on myös paikka 0. Joten periaatteessa puolet mahdollisista arvoista voit sovi int ovat negatiivisia, ja puolet ovat positiivisia. Ja karkeasti täällä, tämä on noin negatiivinen 2000000000 noin positiivinen 2000000000. Antaa tai ottaa pari sataa miljoonaa euroa. Joten se mitä mahtuu vuonna kokonaisluku muuttuja. Nyt meillä on myös jotain kutsutaan allekirjoittamaton kokonaisluku. Nyt allekirjoitettu ints eivät erillinen tyyppi muuttuja. Pikemminkin allekirjoittamaton on mitä kutsutaan karsinnassa. Se muuttaa tiedot tyyppinen kokonaisluku hieman. Ja tässä tapauksessa, mitä allekirjoittamaton means-- ja voit myös käyttää allekirjoittamaton muita tietotyyppejä, kokonaisluku ei ole ainoa. Mitä se käytännössä tekee on tuplaa positiiviset arvoalue että kokonaisluku voi ottaa osoitteessa kustannuksella ei enää huomasi voit ottaa negatiivisia arvoja. Joten jos sinulla on numeroita että tiedät saavat yli 2000000000 mutta vähemmän kuin 4000000000, sillä example-- joka on 2 32. power-- saatat haluta käyttää unsigned int jos tietää arvo ei koskaan negatiivinen. Sinun joskus on käyttää allekirjoittamaton muuttujat vuonna CS50, minkä vuoksi mainitsen sen täällä. Mutta jälleen kerran, arvoalue sinua voi edustaa kanssa allekirjoittamaton kokonaisluku kuten t säännöllinen kokonaisluku, ovat 0 2 ja 32. teho miinus 1, tai noin 0-4 miljardia. Niin olet tehokkaasti kaksinkertaistunut positiivinen alue, joka mahtuu, mutta olet antanut kaikki negatiiviset arvot. Nyt kun syrjään, allekirjoittamaton ei ole ainoa karsinnassa että voisimme nähdä muuttuvan tiedon tyyppejä. On myös asioita kutsutaan lyhyt ja pitkä ja const. Const näemme hieman hieman myöhemmin kurssin. Lyhyt ja pitkä, emme luultavasti ei. Mutta vain tietää, että ovat muita karsintoja. Allekirjoittamaton ei ole ainoa. Mutta se on vain yksi olemme aiomme puhua juuri nyt. Niin kunnossa. Joten olemme katettu kokonaislukuja. Mitä seuraavaksi? Merkkiä. Joten merkkiä käytetään muuttujia joka tallentaa yksittäisiä merkkejä. Char on lyhyt luonnetta. Ja joskus saatat kuulla ihmiset ääntää sitä kuin auto. Joten merkkiä aina yhden tavu muistia, joka on vain 8 bittiä. Tämä tarkoittaa, että ne voi olla vain arvot alueella negatiivinen 2 seitsemännen valtaa, tai negatiivinen 128, 2 7th teho miinus 1 tai 127. Kiitos ASCII, se oli kauan sitten päättänyt tapa kartoittamaan ne positiivisia numeroita 0-127 eri merkkiä että kaikki olemassa meidän näppäimistö. Jotta näemme myöhemmin Tietenkin, ja luultavasti tulevat muistaa jossain piste, pääoma, sillä example-- merkki pääoma A-- karttoja numero 65. Ja syy siihen on koska se on mitä se on on määrittämä ASCII standardi. Pieniä on 97. Merkin 0, kun todella kirjoita merkki, ei edustava numero nolla, on 48. Opit pari Näiden kuten mennä. Ja tulet varmasti tullut tarve niitä hieman myöhemmin CS50. Seuraava suuri tietotyyppi on liukuluvuilla. Joten liukulukuja ovat tunnetaan myös todellinen määrä. He pohjimmiltaan numerot ole desimaalipilkkua niihin. Liukulukuarvoja kuten kokonaisluvut ovat myös sisällä 4 tavua muistia. Nyt ei ole mitään kaavio täällä. Ei ole numero linja, koska kuvataan eri float Ei ole täysin selvää tai intuitiivinen. Riittää, kun sanon sinulle on 32 bittiä työskennellä. Ja jos sinulla on useita kuten pii, joka on kokonaisluku osa 3, ja kelluva kohta osittain tai desimaalin osittain 0,14159, ja niin edelleen, sinun täytyy olla voivat edustaa kaikkia it-- kokonaislukua ja desimaaliosan. Niin mitä luulet, että voisi tarkoittaa? Yksi asia on, että jos desimaalin osa saa pidempään, jos minulla on erittäin suuri kokonaislukuosan, etten tekisi voi olla niin tarkka kanssa desimaalin osan. Ja se on todella rajoittaminen kellua. Kelluu tarkkuuden ongelma. Meillä on vain 32 bittiä työskennellä, joten voimme vain olla niin tarkka meidän desimaalin osan. Emme voi välttämättä desimaalin osa tarkka 100 tai 200 numeroa, koska meillä on vain 32 bittiä työskennellä. Niin, että rajoitus kellua. Nyt onneksi on toinen tietotyyppi nimeltään kaksinkertainen, mikä hieman käsittelee tätä ongelmaa. Tuplaa, kuten kellukkeet, käytetään myös tallentaa todellisia lukuja, tai liukuluku arvot. Erona on, että tuplaa ovat kaksinkertainen tarkkuus. Ne mahtuu 64 bittiä tiedot, tai kahdeksan tavua. Mitä se tarkoittaa? No, se tarkoittaa, että voimme olla paljon enemmän tarkka kanssa desimaalipilkun. Sen sijaan, että pi seitsemään paikkoja ehkä, käteisvaroja, voimme ehkä on sen 30 paikkaa. Jos se on tärkeää, sinun kannattaa käyttää kaksinkertainen sijasta float. Periaatteessa, jos olet työskentelevät mitään missä ottaa todella pitkä desimaalilla ja paljon tarkkuus on tärkeää, haluat luultavasti käytä kaksinkertaista overfloat. Nyt useimmat työtäsi CS50, kellua pitäisi riittää. Mutta tiedän, että kaksinkertaistuu olemassa tapa hieman käsitellä tarkkuus ongelma antamalla sinulle ylimääräistä 32 bittiä työskennellä oman numeroita. Nyt tämä ei ole tietotyyppiä. Tämä on tyyppiä. Ja sitä kutsutaan mitätön. Ja puhun sitä täällä, koska olemme luultavasti nähnyt sen pari kertaa jo CS50. Ja saatat olla miettimättä mistä on kyse. Joten void on tyyppiä. Se on olemassa. Mutta se ei ole tietotyyppiä. Emme voi luoda muuttujan tyypin mitätöidä ja antaa arvoa sille. Mutta toimintoja, esimerkiksi, voi olla mitätön palautuva. Periaatteessa, jos näet toiminto että on mitätön paluu tyyppi, se tarkoittaa, että se ei palauta arvoa. Keksitkö yhteisen toiminto että olemme tähän mennessä käytetty vuonna CS50 joka ei palauta arvoa? Printf on yksi. Printf ei varsinaisesti palata sinulle mitään. Se tulostaa jotain seuloa, ja se on pohjimmiltaan sivuvaikutus mitä printf tekee. Mutta se ei anna arvo takaisin. Et kaapata tulos ja myymälä se jokin muuttuja käyttää sitä myöhemmin. Se vain tulostaa jotain näyttö ja olet valmis. Niin sanomme, että printf on mitätön funktio. Se palauttaa mitään. Kehä luettelo Toiminto voidaan myös olla mitätön. Ja olet myös nähnyt, että melkoisesti CS50 liian. Int main mitätön. Onko että kuulostaa tutulta? Periaatteessa mitä se tarkoittaa, että Tärkein ei ota mitään parametreja. Ei ole mitään väitettä, jonka mukaan päästä siirtyi tärkein. Nyt myöhemmin näemme, että on olemassa tapa siirtää perustelut huomioon tärkein, mutta toistaiseksi mitä olemme nähnyt on int main mitätön. Tärkeimmät vain ei ota mitään perusteluja. Ja niin me täsmentää, että sanomalla mitätön. Olemme vain on hyvin nimenomaisen siitä että se ei ota mitään perusteluja. Joten nyt, riittää kun sanoa, että void pohjimmiltaan pitäisi vain olla paikkamerkki sinulle kuin ajatella kuin ei mitään. Se ei oikeastaan ​​tee mitään. Ei ole paluuta arvoa täällä. Ei ole parametreja täällä. Se on mitätön. Se on hieman monimutkaisempi kuin että. Mutta tämän pitäisi riittää paremmin osa kurssin. Ja toivottavasti nyt sinulla on vähän hieman enemmän käsite mitä mitätön on. Joten ne ovat viisi tyyppiä olet ll kohtaaminen, jotka sisäänrakennettu C. Mutta CS50 meillä on myös kirjasto. CS50.h, jonka voit sisällyttää. Ja joka antaa sinulle kaksi ylimääräistä tyyppiä että olet luultavasti pystyä käytettäväksi tehtäviä, tai vain yleiseksi ohjelmointi. Ensimmäinen näistä on bool. Joten Boolean tietotyyppi, bool, käytetään muuttujia joka tallentaa loogisen arvon. Jos olet koskaan kuullut tämä termi ennen, te ehkä tiedätte, että Boolen arvo pystyy vain tilalla kaksi erilaista eri arvoja. Tosi ja epätosi. Nyt tämä näyttää melko perusoikeuksia, eikö? Se on tavallaan yllätys, että tämä ei ole olemassa C kuin se on sisäänrakennettu. Ja monissa nykykielten, tietenkin Booleans ovat vakiomäärityksistä tietotyyppi. Mutta C, he oikeastaan ​​ole. Mutta olemme luoneet sen sinulle. Joten jos tarvitset luoda muuttuja, jonka tyyppi on bool, aivan varmasti #include CS50.h alussa ohjelman, ja voit luoda muuttujat bool tyyppi. Jos unohdat #include CS50.h, ja aloitat Boolean-tyyppi muuttujia, saatat kohdata ongelmia kun olet kokoamisessa ohjelman. Joten pitää silmällä siitä. Ja ehkä voit vain korjata ongelmia punta lukien CS50.h. Toinen suuri tietotyyppi että me antaa sinulle CS50 kirjastossa on merkkijono. Joten mikä on merkkijono? Jouset ovat todella vain sanoja. He kokoelmat merkkiä. He sanoja. He lauseita. He kohdat. Ehkä koko kirjoja, jopa. Erittäin lyhyt hyvin pitkä sarja merkkiä. Jos haluat käyttää jouset, esimerkiksi tallentaa sana, vain varmista, että myös CS50.h alussa oman ohjelman joten voit käyttää merkkijono tyyppi. Ja sitten voit luoda muuttujia joiden tietotyyppi on merkkijono. Nyt myöhemmin aikana, me myös nähdä, että se on ei koko tarina, joko. Me kohtaavat asiat nimeltään rakenteet, joiden avulla voit ryhmitellä mitä voi olla kokonaisluku ja merkkijono yhdeksi yksiköksi. Ja voimme käyttää, että jotkut tarkoitus, jotka voivat ovat käteviä myöhemmin kurssin. Ja me myös oppia noin määritelty tyyppejä, jonka avulla voit luoda omat tietotyypit. Meidän ei tarvitse huolehtia siitä nyt. Mutta vain tietää, että se on jotain horisontissa, että siellä on paljon enemmän tähän koko tyyppi asia kuin minä kerron teille juuri nyt. Joten nyt olemme oppineet hieman siitä perustiedot tyypit ja CS50 tietotyypit, katsotaanpa puhua siitä, miten työskennellä muuttujiin ja luoda niitä käyttämällä näitä tietotyypit ohjelmiimme. Jos haluat luoda muuttujan, kaikki sinun tarvitsee vain kaksi asiaa. Ensinnäkin, sinun täytyy antaa se tyyppi. Toinen asia mitä tarvitset tehdä, on antaa sille nimi. Kun olet tehnyt, että ja löi puolipiste lopussa, että linja, olet luonut muuttuja. Joten tässä on kaksi esimerkkiä. Int numero; char kirjain ;. Mitä olen tehnyt täällä? Olen luonut kaksi muuttujaa. Ensimmäinen, muuttujan nimi on numero. Ja määrä on pystyttävä pitämään kokonaisluku syöttää arvot, koska sen tyyppi on int. Kirjain on toinen muuttuja että mahtuu merkkiä koska sen tietolaji on char. Melko yksinkertainen, eikö? Jos löydät itsesi tilanteessa, jossa sinun täytyy luoda useita muuttujat samaa tyyppiä, sinun tarvitsee vain määrittää tyypin nimi kerran. Sitten vain luettelo niin monia muuttujia kyseistä tyyppiä kuin tarvitset. Jotta voisin esimerkiksi täällä tässä kolmannessa rivi koodia, sanoa int korkeus ;, uusi rivi. Int leveys ;. Ja joka toimisi myös. Olisin silti saada kaksi muuttujaa kutsutaan korkeus ja leveys, joista jokainen on kokonaisluku. Mutta Saan asiat C syntaksi, konsolidoida yhdellä rivillä. Int korkeus, leveys; Se on sama asia. Olen luonut kaksi muuttujaa, yksi nimeltään korkeus yksi nimeltään leveys, jotka molemmat pystyvät tilan kokonaisluku tyyppi arvot. Samoin täällä, voin luoda kolme liukulukuarvoja kerralla. Voin ehkä luoda muuttujan nimeltään neliöjuuri 2-- joka oletettavasti lopulta pidä kelluva point-- että edustus neliö juureen 2-- neliöjuuri 3, ja pi. Olisin voinut tehdä tätä kolmella eri radoilla. Float, neliöjuuri 2; Float neliöjuuri 3; float pi; ja joka toimisi myös. Mutta jälleen kerran, voin vain vahvistaa tämän huomioon riviäkään koodia. Tekee asiat hieman lyhyempi, ei kömpelöitä. Nyt yleensä, se on hyvä suunnittelu vain julistaa muuttuja, kun sitä tarvitaan. Ja me puhumme hieman vähän enemmän, että myöhemmin kurssin kun puhumme soveltamisala. Joten ei välttämättä tarvitse luoda kaikki muuttujat alussa ohjelman, joka jotkut ihmiset saattavat ovat tehneet aikaisemmin, tai oli varmasti hyvin yleinen koodaus käytäntö monta vuotta sitten työskenneltäessä C. saatat haluavat luoda muuttujan oikeassa, kun sitä tarvitaan. Selvä. Siksi olemme luoneet muuttujat. Miten käytämme niitä? Kun me julistamme muuttuja, meidän ei tarvitse määrittää tietotyyppi Kyseisen muuttujan enää. Itse asiassa, jos teet niin, saatat päätyä outoja seurauksia että me sellaista kaunistella nyt. Mutta riittävää todeta, outoja asioita ovat menossa aloittaa tapahtuu jos vahingossa uudelleen julistaa muuttujat samanniminen uudestaan ​​ja uudestaan. Joten tässä minulla on neljä riviä koodia. Ja minulla on pari Kommentit Ei vain osoittaa mitä tapahtuu jokainen rivi vain auttaa saat sijaitsee mitä on meneillään. Joten int numero ;. Näit, että aiemmin. Se muuttuja ilmoitus. Olen nyt luonut muuttuja soitettu numero, joka on pystyttävä pitämään kokonaisluku-tyypin arvoja. Olen julisti sen. Seuraava rivi Olen osoitetaan arvo numeroon. Numero vastaa 17. Mitä siellä tapahtuu? Laitan numero 17 sisällä että muuttuja. Joten jos joskus sitten tulostaa mitä sisältö numero on myöhemmin, he kertovat minulle se on 17. Joten olen julistanut muuttuja, ja sitten se on määritetty. Voimme toistaa prosessi jälleen char kirjain ;. Se on ilmoitus. Kirje vastaa pääoman H. Se toimeksianto. Melko yksinkertainen, liian. Nyt tämä prosessi voi näyttävät tavallaan typerä. Miksi teemme tätä kaksi riviä koodia? Onko parempi tapa tehdä se? Itse asiassa, on. Joskus saatat nähdä tämä kutsutaan alustus. Se kun julistaa muuttuja ja määrittää arvon samanaikaisesti. Tämä on oikeastaan ​​aika yhteinen asia tehdä. Kun luot muuttujan, voit yleensä haluavat sen olla perusarvo. Vaikka se on 0 tai jotain. Sinä vain annat sille arvoa. Voit alustaa muuttuja. Int on yhtä suuri kuin 17, on sama kuin kaksi ensimmäistä riviä koodia yläpuolelle. Char kirjain on yhtä suuri kuin h on sama kuin kolmas ja neljäs riviä koodia edellä. Tärkein takeaway täällä kun olemme julistamisesta ja osoitetaan muuttujat on jälkeen olemme julisti sen, ilmoitus En käytä tietotyyppiä uudelleen. En sano int numero vastaa 17 toinen rivi koodia, esimerkiksi. Sanon vain numero vastaa 17. Jälleen uudelleen julistaa muuttuja jälkeen olet jo ilmoittanut se voi johtaa Joidenkin outo seuraus. Joten vain olla varovainen siitä. Olen Doug Lloyd. Ja tämä on CS50.