>> [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.