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