>> [Zenelejátszási]
Előadó: Rendben.
Szóval beszéljünk egy másik dolog ez a fajta egyedülálló C,
amely adattípusok és változók.
Amikor azt mondom, egyedülálló C, igazán csak azt jelenti, összefüggésben,
ha már egy programozó Egy nagyon hosszú idő,
akkor már valószínűleg nem dolgozott adattípusok
ha már használta a modern programozási nyelvek.
Modern nyelvek, mint a PHP és JavaScript,
amit akkor is látni egy kicsit később a kurzus,
akkor valójában nem kell megadnia Az adatok változó típusát
ha használja azt.
>> Te csak nyilvánítja, és már használhatja is.
Ha ez egy egész szám, akkor Tudom, hogy egy egész szám.
Ha ez a karakter, ez tudja, hogy ez a karakter.
Ha ez a szó, hogy tudja, ez egy húr, ún.
>> De a C, ami egy idősebb nyelv, meg kell
megadni az adatokat típusú minden változó
hogy hozzon létre az első alkalom, hogy használjuk a változót.
Tehát C jön néhány beépített adattípusok.
És ismerkedjünk néhány ilyen.
És akkor utána mi is beszélnek kicsit az adatok egy részét típusok
hogy már írt neked, így használhatja őket CS50.
>> Az első az Int.
Az int adattípus használják változók amely tárolja egész értékeket.
Tehát az 1, 2, 3, negatív 1, 2, 3, és így tovább.
Egészek, ami az, amit szem előtt kell tartaniuk a kvíz,
Mindig vegye fel négy bájt memória, amely 32 bit.
Nyolc bit egy byte.
>> Tehát ez azt jelenti, hogy a tartomány értékeli, hogy egy egész tárolására képes
korlátozza, hogy mit lehet beleillenek 32 biten információkat.
Most, hogy kiderült, ez már régen volt határozott,
hogy mi lenne szét hogy a tartomány 32 bites
a negatív egészek és pozitív egész szám,
minden egyes szerzés fele a tartományban.
Tehát értéktartományáról hogy az általunk képviselt egy egész tartományban negatív 2
A 31. hatalmat 2 A 31. hatalom mínusz 1,
okozhat akkor is kell egy hely 0.
>> Tehát alapvetően fele a lehetséges értékek elfér egy int negatív,
és fél pozitívak.
És nagyjából itt, ez a negatív 2 milliárd a pozitív 2 milliárd.
Plusz-mínusz pár száz milliót.
Szóval ez az, amit elfér egy egész változó.
Most mi is van valami, nevű előjel nélküli egész.
Most aláíratlan ints nem egy Külön típusú változó.
Inkább aláíratlan van az úgynevezett a selejtezőn.
Ez módosítja az adatokat típusú egész kissé.
>> És ebben az esetben, mi előjel nélküli means-- és akkor is
Használja aláíratlan más adattípusok, egész nem az egyetlen.
Milyen hatékonyan tesz, páros A pozitív tartományban értékek
hogy egy egész vehet át rovására már nem lehetővé téve
teszi, hogy a negatív értékeket.
Tehát ha van szám, hogy tudod, lesz magasabb, mint 2 milliárd, de kevesebb,
mint 4 milliárd, a example-- ami 2 a 32. power--
érdemes használni előjel nélküli int, ha
tudom, hogy az érték soha nem lesz negatív.
>> Majd alkalmilag használt előjel nélküli változók
A CS50, ezért is beszélve, hogy itt.
De ismétlem, a különböző értékek, amelyek képviselhet egy előjel nélküli egész
mint a t rendszeresen egész, 0 2 A 32. teljesítmény mínusz 1,
vagyis körülbelül 0-4000000000.
Szóval gyakorlatilag megduplázódott a pozitív tartományban, hogy elfér,
de már feladta A negatív értékek.
>> Most Mellesleg, aláíratlan nem az egyetlen selejtező
hogy mi lehet látni a változó adattípusok.
Vannak dolgok, az úgynevezett Rövid és hosszú és const.
Const fogunk látni egy kicsit Kicsit később során.
Rövid és hosszú, akkor valószínűleg nem fog.
>> De csak tudom, hogy ott más selejtezők.
Aláíratlan nem az egyetlen.
De ez az egyetlen vagyunk fogok beszélni most.
Szóval minden rendben.
Így már lefedett egészek.
Mi a következő lépés?
>> Karakter.
Tehát karakter használják változók amely tárolja egyetlen karakter.
Char rövid a karaktert.
És néha lehet, hogy hallani emberek kimondani, mint autós.
>> Tehát karakter mindig az egyik byte memóriát, amely mindössze 8 bit.
Tehát ez azt jelenti, hogy csak illik értékek a tartományban negatív 2
A hetedik hatalom, vagy negatív 128, 2 a 7. teljesítmény mínusz 1, vagy 127.
>> Hála ASCII volt Réges régen elhatároztuk módon
feltérképezni azokat a pozitív számok 0-127 a különböző karakterek
hogy minden létezik a mi billentyűzet.
Tehát mint láthatjuk később Az persze, és akkor talán,
gyere memorizálni néhány pont, a tőke egy, a example--
A karakter fővárosban egy-- térképek, hogy a 65.
És az oka, hogy mert ez az, ami ez
nem véletlenül szerepel az ASCII szabványt.
>> Kisbetűs A 97.
A karakter 0, ha begépelnie a karakter, nem
képviselő a szám nulla, a 48.
Meg fogod tanulni egy pár Ezen ahogy megy.
És akkor biztosan jönni kell nekik egy kicsit később CS50.
>> A következő nagy adattípus lebegőpontos számok.
Tehát lebegőpontos számok más néven valós számok.
Ők alapvetően számok Van egy tizedesvessző bennük.
Lebegőpontos értékek mint egészek is
tartalmazott 4 byte memóriát.
Most nincs ábrán láthatók itt.
Nincs több sorban, mert leírja a tartományban egy úszó
Nem igazán világos, vagy intuitív.
>> Elég annyit mondani, van 32 bit dolgozni.
És ha van egy szám mint pi, amely
egész szám 3. rész, és egy lebegő pont része, vagy tizedes rész 0,14159,
és így tovább, meg kell, hogy képes képviselni az összes it--
Az egész részét, és a tizedes rész.
>> Szóval mit gondolsz, hogy azt jelentheti?
Egy dolog az, hogy ha a decimális része egyre hosszabb és hosszabb,
ha van egy nagyon nagy egész része, talán nem
képes legyen olyan pontos a tizedes rész.
És ez valóban a korlátozása úszó.
>> Úszók pontosságának probléma.
Már csak 32 bitet dolgozni, így csak
annyira pontos a mi decimális részt.
Nem feltétlenül kell egy tizedes rész pontosan a 100 vagy 200 számjegy,
mert csak 32 bit dolgozni.
Szóval ez egy korlátozás úszó.
>> Most szerencsére van Egy másik adat típusú úgynevezett
két-, ami némileg foglalkozik ezzel a problémával.
Páros, mint úszók, is használják tárolja valós számok, vagy lebegőpontos
értékeket.
A különbség az, hogy páros dupla pontosságú.
Elfér 64 bit adatok, vagy nyolc bájt.
Az mit jelent?
Nos, ez azt jelenti, hogy sokkal több pontos a tizedesvessző.
Ahelyett, pi-hét helyeken talán, egy úszó,
akkor talán még azt 30 helyekre.
Ha ez fontos, érdemes kezelhető egy dupla helyett egy úszó.
Alapvetően, ha dolgozik semmit, ha
amelynek nagyon hosszú tizedes pontossággal és sok precíziós fontos,
akkor érdemes alkalmazzon dupla overfloat.
Most a legtöbb a munka CS50, úszó elegendő.
De tudom, hogy páros léteznek módja annak, hogy valamivel foglalkozni a precíziós
problémát azzal, hogy egy extra 32 bit dolgozni a számokat.
>> Most ez nem egy adat típusát.
Ez egy olyan típusú.
És ezt hívják semmis.
És beszélek róla itt, mert már valószínűleg
láttam egy párszor már CS50.
És lehet, hogy vajon mi ez az egész.
>> Tehát void egy típust.
Hogy létezik.
De ez nem egy adat típusát.
>> Nem tudjuk létrehozni egy változó típusú érvényteleníti, és rendelni egy összegben határozta meg.
De funkciók, például, Lehet egy void visszatérési típus.
Alapvetően, ha látsz egy függvény hogy van egy void visszatérési típusa,
ez azt jelenti, hogy nem ad vissza értéket.
Tudna közös funkciót, hogy már az eddig használt
A CS50, amely nem ad vissza értéket?
>> Printf egyike.
Printf valójában nem vissza semmit az Ön számára.
Nyomtat valamit a képernyőn, és ez alapvetően
mellékhatása, amit printf csinál.
De ez nem kapsz egy értéket vissza.
Nem elfog az eredményt, és tárolja hogy valamilyen változó használni a későbbiekben.
Csak kiírja valamit A képernyő és kész.
>> Tehát azt mondjuk, hogy a printf egy űr funkciót.
Ez adja vissza semmit.
>> A határoló listáját a funkciót is semmis.
És akkor is láttam, hogy egy kicsit a CS50 is.
Int main semmis.
Van, hogy cseng a harang?
Alapvetően mit jelent az, hogy fő nem vállal paramétereket.
Nincs érv, hogy hogy telt a fő.
Most a későbbiekben látni fogjuk, hogy van egy módja annak, hogy adja át az érveket fő,
de eddig mi voltunk láttam az int main semmis.
Fő egyszerűen nem vállal semmilyen érvet.
És így meghatározhatja, hogy azzal semmis.
Mi csak, hogy nagyon egyértelműen beszél az a tény,
hogy nem vállal semmilyen érvet.
>> Tehát most, elegendő azt mondják, hogy semmisnek alapvetően
kéne szolgálnia helykitöltő Ön, mint gondoltam, mint a semmi.
Ez nem igazán tesz semmit.
Nincs visszatérési értéke van.
Nincs paramétereit.
Ez semmis.
Ez egy kicsit bonyolultabb ennél.
De ez elégnek kell lennie A jobb része a kurzus.
És remélem, hogy most már van egy kis kicsit több a koncepció, amit üresség.
>> Tehát ezek az ötféle azt is megtudhatod találkozás, melyek beépített C.
De CS50 mi is egy könyvtár.
CS50.h, amely akkor is.
És melyik az Ön számára két további típusok
hogy akkor valószínűleg tudja, használhat fel feladatokat,
vagy csak munkavégzés általános programozási.
>> Az első ezek közül BOOL.
Így a logikai adattípus, bool, használják változók
amely tárolja egy logikai érték.
Ha valaha is hallottam A kifejezés előtt, akkor
Lehet tudni, hogy egy logikai érték képes csak a
gazdaság két különböző különböző értéket.
Igaz és hamis.
Most ez úgy tűnik, elég alapvető, ugye?
Elég meglepő, hogy ez a nem létezik a C, mint a 'beépített.
És sok modern nyelvek, Természetesen Logikai
egy szabványos alapértelmezett adattípus.
De a C, ők valóban nem.
De mi hoztunk létre az Ön számára.
Tehát, ha valaha is létre kell hozni egy változó, amelynek típusa int,
Csak győződjön meg róla, hogy #include CS50.h elején a programot,
és akkor képes lesz arra, hogy hozzon létre változók a bool típusú.
>> Ha elfelejtette #include CS50.h, és elkezdi használni logikai típusú változók,
Ön is találkozhat néhány probléma amikor fordítod a programot.
Tehát csak a kilátás, hogy.
És talán akkor csak rögzíti a problémákat font beleértve CS50.h.
>> A másik fő adattípus, hogy mi nyújtani az Ön számára a CS50 könyvtár
string.
Tehát mi egy string?
Húrok tényleg csak szavak.
Ők gyűjtemények karakter.
Ők szó.
Ők mondatokat.
Ők bekezdések.
Lehet, hogy egész könyveket, sőt.
>> Nagyon rövid vagy nagyon hosszú karakterek sorozata.
Ha kell használni húrok, például, hogy tárolja a szót,
Csak győződjön meg róla, hogy tartalmazza CS50.h elején a programot
így használhatja a string típusú.
És akkor hozhat létre változókat akinek adatait típusa szöveges.
Most később során, mi is látjuk, hogy ez
nem az egész történetet sem.
Majd találkozunk a dolgokat nevezett szerkezetek,
amely lehetővé teszi, hogy csoporttal, hogy mit lehet egy egész szám, és egy sor egyetlen egységet.
És tudjuk használni, hogy a valamilyen célból, ami
jól jöhet később a kurzus.
>> És mi is megtudhatja, a meghatározott típusú,
amelyek lehetővé teszik, hogy saját adattípusok.
Nem kell aggódni erről most.
De csak tudom, hogy ez valamit a horizonton,
hogy ott sokkal több ez az egész típusú dolog, mint én mondom, csak
Most.
Most, hogy megtanultam kicsit a alapadatok
típusú és a CS50 adattípusok, hadd beszélni, hogyan kell dolgozni változók
és hozzuk őket létre ezeket a adattípusok programjainkban.
Ha azt szeretnénk, hogy hozzon létre egy változót, Mindössze annyit kell tennie, hogy két dolgot.
>> Először is meg kell adni, hogy egy típust.
A második dolog, amire szüksége tennie, hogy adja meg a nevét.
Miután ezzel megvagy, és csapott egy pontosvessző végén a sor,
Ön létrehozott egy változó.
>> Tehát itt két példa.
Int száma; char írni ;.
Mit tettem itt?
Már létrehozott két változó.
>> Az első, a változó Név számát.
És számos képes a gazdaság egész írja értékeket, mert a típusa int.
Írni egy másik változó hogy fér karakter
mert az adatok típusa char.
>> Elég egyszerű, ugye?
Ha azon kapod magad egy olyan helyzetben, ahol a
akkor létre kell hozni több változók az azonos típusú,
Önnek csak be kell adni A típus neve egyszer.
Akkor csak felsorolni annyi változók Az ilyen típusú, amennyire szüksége van.
>> Így tudtam például itt Ebben a harmadik sor kódot,
mondjuk int magassága ;, új vonal.
Int szélessége ;.
És ez működne is.
Én még mindig kap két változó nevű magassága és szélessége, amelyek mindegyike
egy egész szám.
De én vagyok szabad, hogy a dolgok a C szintaxis, konszolidálni egy sorba.
Int magasság, szélesség; Ez ugyanaz a dolog.
Már létrehozott két változó, az egyik neve magasság egy úgynevezett szélesség, mindkettő
képesek gazdaság egész típusú érték.
>> Hasonlóképpen itt, én is létrehozhat három lebegőpontos értékek egyszerre.
Én talán egy változó úgynevezett négyzetgyök 2--
amely feltehetően előbb-utóbb tartsa a lebegő point--
ez a képviselet a tér gyökere 2-- négyzetgyök 3, és a pi.
Nem tudtam volna ezt három külön vonalakon.
Float, négyzetgyök 2; Float négyzetgyök 3; float pi; és hogy működne is.
>> De ismétlem, én is csak megszilárdítsa ez egyetlen sor kódot.
Teszi a dolgokat egy kicsit rövidebb, nem nehézkes.
>> Most általában, ez jó design csak hogy egy változót, amikor szüksége van rá.
És fogunk beszélni egy kicsit kicsit többet, hogy
később a kurzus ha megbeszéljük hatálya.
Tehát nem feltétlenül kell hozzon létre az összes változót
elején a program, amely néhány ember tette volna a múltban,
vagy bizonyára nagyon gyakori kódolási gyakorlat sok évvel ezelőtt
ha dolgozik, C. Lehet, hogy csak szeretnénk létrehozni egy változó igaza van, amikor
szükséged van rá.
Minden rendben.
Így hoztuk létre változókat.
Hogyan használjuk őket?
Miután kijelentik, változó, nem kell
meghatározni az adatok típusát Az, hogy a változó többé.
Sőt, ha nem így van, akkor talán a végén valami furcsa következményei
hogy mi lesz a fajta elkendőz most.
De elég annyit mondani, fura dolgok mennek
kezdeni történik, ha véletlenül újra kijelentik változók azonos nevű
újra és újra.
>> Tehát itt van négy sornyi kódot.
És van egy pár kommentek ott csak azt jelzi,
mi történik Minden sorban csak segíteni
kapsz található, mi folyik itt.
Tehát int száma ;.
Láttad, hogy korábban.
Ez a változó deklarációja.
>> Már most létre egy változót hívott szám ez
képes a gazdaság egész típusú érték.
Már nyilvánította.
>> A következő sorban én hozzárendelése Egy érték számot.
Száma egyenlő 17.
Mi történik ott?
Leteszem a 17-es szám belsejében, hogy változó.
>> Tehát, ha valaha majd nyomtassa ki, mi tartalmának száma a későbbiekben,
azt fogják mondani, hogy ez 17.
Úgyhogy kijelentette változó, majd én rendelt meg.
>> Mi lehet ismételni a folyamatot újra char írni ;.
Ez egy nyilatkozatot.
Letter egyenlő tőke H. Ez egy megbízást.
Nagyon egyszerű is.
>> Most ez a folyamat akár Úgy tűnik, a fajta buta.
Miért csinálod ezt két sornyi kódot?
Van egy jobb módja annak, hogy csinálni?
Tény, hogy van.
Néha lehet látni ezt nevezzük elindulni.
Ez, ha kijelentem, változó és hozzá egy értéket ugyanabban az időben.
Ez valójában egy nagyon közös dolog.
Amikor létrehoz egy változót, akkor általában akarjuk, hogy néhány alapvető érték.
Még ha ez 0 vagy valamit.
Te csak adsz neki értéket.
>> Inicializálhatja változó.
Int szám egyenlő 17 ugyanaz, mint a Az első két sornyi kódot fölé.
Char levél egyenlő h ugyanaz, mint a harmadik és negyedik sorban a fenti kódot.
A legfontosabb elvihető ide Amikor már nyilvánításáról és hozzárendelése
változók miután már nyilvánította, értesítés
Én nem használ az adatok típusát újra.
Nem azt mondom, int a szám egyenlő 17 A második sorban a kód, például.
Csak azt mondom, a szám egyenlő 17.
>> Ismét újra nyilvánító változó után akkor már kijelentette, hogy vezethet
a furcsa következménye.
Szóval, csak vigyázz, hogy.
>> Én Doug Lloyd.
És ez CS50.