>> [MUSIC JOC]
Vorbitor: Bine.
Deci, hai sa vorbim despre un alt lucru care e un fel de unic pentru C,
care este tipurile de date și variabile.
Când spun unic la C, eu chiar înseamnă doar în contextul,
Dacă ați fost un programator pentru un timp foarte lung,
nu ați probabil a lucrat cu tipuri de date
Dacă ați utilizat modernă limbaje de programare.
Limbi moderne, cum ar PHP și JavaScript,
care vom vedea, de asemenea, un pic mai târziu, în cursul,
nu trebuie de fapt să specificați tipul de date unei variabile
atunci când este utilizat.
>> Trebuie doar declare și a începe să utilizați-l.
Dacă este un număr întreg, se Știu că e un număr întreg.
Dacă e un personaj, e știe că e un personaj.
Dacă e un cuvânt, ea știe este un șir de caractere, așa-numitele.
>> Dar în C, care este o limbă mai mari, avem nevoie de
pentru a specifica datele tip de fiecare variabilă
să creăm pentru prima dată pe care le folosim ca variabilă.
Deci, C vine cu unele built-in tipuri de date.
Și să se familiarizeze cu unele dintre acestea.
Și după aceea vom vorbi, de asemenea, o pic despre unele dintre tipurile de date
pe care le-am scris pentru tine, astfel încât să puteți utiliza în CS50 le.
>> Primul este int.
Tipul de date int este utilizat pentru variabilele care va stoca valori întregi.
Deci 1, 2, 3, negativ 1, 2, 3, și așa mai departe.
Întregi, care este tu ceva ar trebui să țină cont de test,
ia întotdeauna patru octeți de memorie, care este de 32 biți.
Există opt biți într-un octet.
>> Deci, aceasta înseamnă că gama de valori care un număr întreg poate stoca
este limitat de ceea ce se poate potrivi în 32 de biți în valoare de informații.
Acum se pare că, sa decis mult timp în urmă
care ne-ar despărțim că gama de 32 de biți
în numere întregi negative, și numere naturale,
fiecare jumătate obținerea a intervalului.
Deci, intervalul de valori pe care le reprezintă cu o gamă număr întreg de la 2 negativ
la puterea 31 la 2 la puterea 31 minus 1,
provoca ai nevoie, de asemenea, un loc pentru 0.
>> Deci, practic jumătate din valorile posibile puteți potrivi un int sunt negative,
și jumătate sunt pozitive.
Și aproximativ aici, este vorba despre negativ 2 miliarde la circa 2 miliarde de pozitiv.
Da sau de a lua o câteva sute de milioane de euro.
Deci, asta e ceea ce se poate potrivi într-o variabilă întreg.
Acum avem, de asemenea, ceva numit un număr întreg fără semn.
Acum, int nesemnate nu o au tip separat de variabilă.
Mai degrabă, este nesemnat ceea ce se numește un calificativ.
Acesta modifică datele tip de întreg ușor.
>> Și în acest caz, ceea ce nesemnat înseamnă: și puteți, de asemenea
utiliza nesemnate alte tipuri de date, întreg nu e singurul.
Ceea ce face în mod eficient este dublu intervalul de valori pozitive
că un număr întreg poate lua pe la cheltuiala nu mai permițând
a lua pe valori negative.
Deci, dacă aveți un număr pe care le cunoașteți va primi mai mult de 2 miliarde, dar mai puțin
de 4 miliarde de euro, pentru example-- care este de 2 la a 32-power--
s-ar putea doriți să utilizați int nesemnate, dacă
știu valoarea ta nu va fi negativ.
>> Veți avea ocazional folosit pentru variabile nesemnate
în CS50, motiv pentru care am menționa aici.
Dar, din nou, gama de valori pe care le poate reprezenta cu un întreg fără semn
ca de t întreg regulat, sunt 0 la 2 la puterea 32 minus 1,
sau aproximativ 0 la 4000000000.
Deci ai dublat în mod eficient Gama pozitive pe care le pot potrivi,
dar ai dat tot valorile negative.
>> Acum ca o paranteza, nesemnat nu este singura calificare
că am putea vedea pentru tipuri de date variabile.
Există, de asemenea lucruri, numite scurt și lung și const.
Const vom vedea un pic Puțin mai târziu, în cursul.
Scurt și lung, noi, probabil, nu va.
>> Dar știu doar că acolo sunt alte calificative.
Nesemnate nu este singurul.
Dar e singurul suntem vorbi despre acum.
Deci, în regulă.
Deci ne-am acoperit întregi.
Ce urmeaza?
>> Caractere.
Deci caractere sunt utilizate pentru variabile care va stoca caractere unice.
Char este prescurtarea de la caracter.
Și, uneori, s-ar putea auzi oamenii pronunță ca masina.
>> Deci caractere ia întotdeauna un byte de memorie, care este la doar 8 biți.
Deci, aceasta înseamnă că ei pot potrivi numai valori în intervalul de negativ 2
la a șaptea putere, sau negativ 128, la 2 la puterea 7a minus 1, sau 127.
>> Datorită ASCII, a fost mult timp în urmă a decis un mod
pentru a mapa aceste numere pozitive de la 0-127 la diferite caractere
ca toate exista pe tastatura noastră.
Deci, după cum vom vedea mai târziu în cursul, și veți probabil
vin să memoreze la un punct, de capital A, pentru example--
capitalul caracter un-- hărți la numărul 65.
Și motivul pentru care este pentru că asta e ceea ce este e
fost atribuit de standardul ASCII.
>> Litere mici A este de 97.
Caracterul 0 pentru atunci când tip de fapt caracterul, nu
reprezentând numărul de zero, este 48.
Veți afla un cuplu dintre acestea ca te duci.
Și veți veni cu siguranță nevoie de le un pic mai târziu, în CS50.
>> Următorul tip de date mai mare este flotantă numere de puncte.
Deci, numere reale cu virgulă sunt De asemenea, cunoscut sub numele de numere reale.
Sunt practic numere care au un punct zecimal în ele.
Plutitoare valori punctuale ca numere întregi, de asemenea,
conținut în 4 bytes de memorie.
Acum nu există nici o diagramă aici.
Nu e nici o linie număr, pentru că descrie gama de un flotor
nu este tocmai limpede sau intuitiv.
>> Este suficient să spui au 32 de biți pentru a lucra cu.
Și, dacă aveți un număr ca pi, care are
o parte întreg 3, și un plutitoare punct parte, sau o parte zecimală 0.14159,
și așa mai departe, trebuie să fie capabil de a reprezenta toate it--
partea întreagă și partea zecimală.
>> Deci, ce credeți că ar putea să însemne?
Un lucru este că, dacă zecimal parte devine mai mult și mai mult,
dacă am o foarte mare partea întreagă, nu s-ar putea
putea fi la fel de precis cu partea zecimală.
Și asta e într-adevăr limitarea un flotor.
>> Flotoare o problemă de precizie.
Avem doar 32 de biți pentru a lucra cu, astfel încât să putem doar
să fie atât de precis, cu partea noastră zecimal.
Nu putem avea o zecimală neapărat parte de precisă pentru a 100 sau 200 de cifre,
pentru că avem doar 32 de biți pentru a lucra cu.
Deci asta este o limitare de un flotor.
>> Acum, din fericire există un alt tip de date numit
dublu, care oarecum se ocupă cu această problemă.
Dublu, cum ar fi flotoare, sunt, de asemenea, folosite pentru a stoca numere reale, sau în virgulă mobilă
valori.
Diferența este că duble sunt duble precizie.
Ele pot potrivi 64 de biți de date, sau opt bytes.
Ce înseamnă asta?
Ei bine, aceasta înseamnă că poate fi mult mai mult precis cu punctului zecimal.
În loc de a pi la șapte locuri, poate, cu un float,
putem poate avea la 30 de locuri.
Dacă asta e important, ați putea dori de a utiliza o dublă în loc de un flotor.
Practic, dacă sunteți de lucru pe ceva în cazul în care
având o zecimală foarte lung și o mulțime de precizie este important,
probabil că doriți să utilizați o overfloat dublu.
Acum, pentru cea mai mare a muncii în CS50, un flotor ar fi suficiente.
Dar știu că duble exista ca modalitate de a face oarecum cu precizia
problemă oferindu-vă un plus de 32 biți pentru a lucra cu pentru numerele.
>> Acum, acest lucru nu este un tip de date.
Acesta este un tip.
Și se numește nulă.
Și vorbesc despre ea aici pentru că ne-am, probabil,
văzut-o de câteva ori deja în CS50.
Și s-ar putea fi mirat ce este vorba.
>> Deci gol este un tip.
Ea există.
Dar nu este un tip de date.
>> Nu putem crea o variabilă de tip anula și atribui o valoare la acesta.
Dar funcții, de exemplu, poate avea un tip de întoarcere nule.
Practic, dacă vedeți o funcție care are un tip de întoarcere void,
aceasta înseamnă că nu se întoarce o valoare.
Te poți gândi la o comun Funcția pe care le-am folosit până acum
în CS50 care nu se întoarce o valoare?
>> Printf este unul.
Printf nu de fapt, reveni ceva pentru tine.
Se imprimă ceva la ecran, și este practic
un efect secundar a ceea ce face printf.
Dar nu vă oferă o valoare înapoi.
Tu nu surprinde rezultatul și magazin se, în unele variabile să-l folosească mai târziu.
Se imprimă doar ceva pentru a ecranul și ați terminat.
>> Deci, noi spunem că printf este o funcție void.
Se întoarce nimic.
>> Lista perimetru al unui Funcția poate fi, de asemenea, nulă.
Și le-ați văzut, de asemenea, că destul de un pic în CS50 prea.
Void main Int.
Are acel inel un clopot?
Practic ceea ce înseamnă că este faptul că principal nu ia nici un parametru.
Nu e nici un argument care se în principal a trecut.
Acum mai târziu vom vedea că nu există o modalitate de a trece argumente în principal,
dar până acum ceea ce am văzut este void main Int.
Principalul doar nu ia nici un argument.
Și așa ne-am specifica faptul ca prin a spune nule.
Suntem doar fiind foarte explicit despre faptul
că nu ia nici un argument.
>> Deci, pentru moment, este suficient să se spun că, practic, nule
ar trebui să servească doar ca un substituent pentru tine, ca gândesc ca nimic.
Nu face nimic.
Nu e nici o valoare întoarcere aici.
Nu sunt parametrii aici.
E gol.
E un pic mai complex decât atât.
Dar acest lucru ar trebui suficient pentru cea mai mare parte a cursului.
Și, sperăm, acum ai un pic de pic mai mult de un concept de ceea ce este nul.
>> Deci, acestea sunt cele cinci tipuri veți întâlnire care sunt built-in pentru a C.
Dar în CS50, avem, de asemenea, o bibliotecă.
CS50.h, pe care le pot include.
Și care vă va oferi cu două tipuri suplimentare
că veți fi probabil în măsură pentru a utiliza pe sarcinile tale,
sau pur și simplu de lucru, în general, de programare.
>> Primul dintre acestea este bool.
Deci, boolean, bool, se folosește pentru variabilele
care va stoca o valoare Boolean.
Dacă ați auzit vreodată acest termen înainte,
să știe că un Boolean Valoarea este capabil de numai
care deține două valori distincte diferite.
Adevărat și fals.
Acum, acest lucru pare destul de fundamental, nu?
Este un fel de o surpriză faptul că această nu există în C, este construit-in.
Și în mai multe limbi moderne, desigur, Booleans
sunt un tip de date implicit standard de.
Dar, în C, nu sunt de fapt.
Dar l-am creat pentru tine.
Deci, dacă aveți nevoie pentru a crea o variabilă a cărei tip este bool,
doar asigurați-vă că pentru a #include CS50.h la începutul programului,
și veți putea crea variabile de tip bool.
>> Dacă uitați să #include CS50.h, și a începe să utilizați variabile de tip Boolean,
-ar putea întâlni unele probleme atunci când sunteți compilarea programul.
Astfel încât să fie doar cu ochii în patru pentru asta.
Și poate că poate repara doar Probleme de lire, inclusiv CS50.h.
>> Alt tip important de date pe care le prevăd tine în bibliotecă CS50
este șir.
Deci, ce este un șir?
Siruri de caractere sunt foarte doar cuvinte.
Sunt colecții de caractere.
Sunt cuvinte.
Sunt propoziții.
Sunt punctele.
S-ar putea să fie cărți întregi, chiar.
>> Foarte scurt la foarte lung serie de caractere.
Dacă aveți nevoie pentru a utiliza siruri de caractere, de exemplu, pentru a stoca un cuvânt,
doar asigurați-vă că pentru a include CS50.h la începutul programului de
astfel încât să puteți utiliza tipul de șir.
Și apoi puteți crea variabile al cărui tip de date este șir.
Acum mai târziu, în cursul, vom vedea, de asemenea, că este
nu intreaga poveste, fie.
Vom întâlni lucruri numite structuri,
care vă permit să grup ceea ce poate fi un număr întreg și un șir într-o singură unitate.
Și putem folosi asta pentru un scop, care ar putea
veni la îndemână mai târziu, în cursul.
>> Și vom afla, de asemenea despre tipurile definite,
care vă permit să creați dvs. tipuri de date proprii.
Nu avem nevoie să vă faceți griji despre asta de acum.
Dar știu doar că asta e ceva la orizont,
că există o mult mai mult la acest ansamblu Tipul lucru decât vă spun doar
acum.
Deci, acum că am învățat-o pic despre datele de bază
tipurile și tipurile de date CS50, să vorbesc despre modul de a lucra cu variabile
și de a crea-le folosind aceste tipurile de date din programele noastre.
Dacă doriți să creați o variabilă, tot ce trebuie să faceți este de două lucruri.
>> În primul rând, aveți nevoie pentru a da un tip.
Al doilea lucru care aveți nevoie să faceți este să dea un nume.
Odată ce ați făcut asta și pălmuit o punct și virgulă la sfârșitul acestei linii,
ați creat o variabilă.
>> Deci, aici sunt două exemple.
Numărul Int; scrisoare char ;.
Ce-am făcut aici?
Am creat două variabile.
>> Primul, variabila anii Numele este numărul.
Și numărul este capabil să mențină întreg tip valori, pentru că tipul său este Int.
Scrisoarea este o altă variabilă care poate stoca caractere
pentru că tipul de date este char.
>> Destul de simplu, nu?
Dacă vă aflați în situația în care
aveți nevoie pentru a crea mai multe variabile de același tip,
trebuie doar să specificați numele de tip dată.
Apoi, lista la fel de multe variabile de acest tip ca ai nevoie.
>> Așa că am putut, de exemplu, aici în această a treia linie de cod,
spune înălțime Int ;, nouă linie.
Lățimea Int ;.
Și că ar lucra prea.
Aș obține încă două variabile numite înălțime și lățime, fiecare dintre care
este un număr întreg.
Dar am voie să, lucruri C sintaxa, consolideze o într-o singură linie.
Înălțime Int, lățime; E același lucru.
Am creat două variabile, unul numit înălțimea cea numita lățime, ambele
sunt capabile de exploatație Valorile tip întreg.
>> În mod similar aici, pot crea trei Valorile în virgulă mobilă, la o dată.
Pot crea o variabilă poate numit rădăcină pătrată a 2--
care probabil va în cele din urmă țineți point-- plutitoare
că reprezentare a pătrat rădăcină de 2-- rădăcina pătrată a 3, și pi.
Am fi putut face acest lucru pe trei linii separate.
Float, rădăcină pătrată 2; Float rădăcină pătrată 3; float pi; și că ar lucra prea.
>> Dar, din nou, pot consolida doar aceasta într-o singură linie de cod.
Face lucrurile un pic mai scurte, nu ca greoaie.
>> Acum, în general, este un design bun la numai declara o variabilă atunci când aveți nevoie.
Și vom vorbi un pic mai multe despre asta ceva
mai târziu, în cursul când vom discuta domeniul de aplicare.
Deci, nu trebuie neapărat să a crea toate variabilele
la începutul programului, care unii oameni ar putea fi făcut în trecut,
sau a fost cu siguranță un foarte frecvente Acum practica de codificare multi ani
atunci când se lucrează cu C. S-ar putea doar doriți să creați un drept variabilă, atunci când
aveți nevoie de ea.
In regula.
Deci am creat variabile.
Cum le folosim?
Dupa ce am declara o variabilă, nu avem nevoie de
pentru a specifica tipul de date din variabile mai.
De fapt, dacă faceți acest lucru, s-ar putea termina cu unele consecințe ciudate
că vom fel de luciu peste pentru acum.
Dar este suficient să spunem, lucruri ciudate se întâmplă
pentru a începe întâmplă dacă din greșeală re-declare variabile cu același nume
din nou si din nou.
>> Deci, aici am patru linii de cod.
Și am o pereche de Comentarii Nu doar indicând
ceea ce se întâmplă pe fiecare linie doar pentru a ajuta la
te situat în ceea ce se întâmplă.
Numărul Deci Int ;.
Ai văzut că anterior.
Asta-i o declarație variabilă.
>> Am creat acum o variabilă numit număr care este
capabil să mențină valori de tip întreg.
Am declarat.
>> Următoarea linie am atribuirea o valoare număr.
Numărul este egal cu 17.
Ce se întâmplă acolo?
Pun numărul 17 în interiorul acestei variabile.
>> Deci, dacă am vreodată apoi imprimați ce conținutul număr sunt mai târziu,
vor să-mi spui că e de 17.
Așa că am declarat o variabilă, și apoi l-am atribuit.
>> Putem repeta procesul de din nou cu litere char ;.
Asta-i o declarație.
Scrisoare este egal cu capitalul H. E o misiune.
Destul de simplu, de asemenea.
>> Acum, acest proces ar putea par un fel de prostie.
De ce facem asta în două linii de cod?
Există o modalitate mai bună de a face acest lucru?
De fapt, nu există.
Uneori s-ar putea vedea acest numit inițializare.
E atunci când declara o variabilă și atribuie o valoare în același timp.
Aceasta este de fapt o destul de lucru comun pentru a face.
Când creați o variabilă, de obicei doriți să aibă o anumită valoare de bază.
Chiar daca e 0 sau ceva.
Trebuie doar să vă dau o valoare.
>> Puteți inițializa o variabilă.
Int număr egal cu 17 este același ca primele două linii de cod până sus.
Scrisoare Char este egal h este aceeași ca și Liniile treia și a patra de cod de mai sus.
Cel mai important Takeaway aici când suntem declararea și atribuirea
variabile este, după ne-am a declarat că, aviz
Eu nu sunt, folosind din nou tipul de date.
Nu spun număr int egal 17 pe a doua linie de cod, de exemplu.
Spun doar că numărul este egal cu 17.
>> Din nou, re-declararea unei variabile după ai declarat deja că poate duce
într-o anumită consecință ciudat.
Deci, doar să fie atent de asta.
>> Sunt Doug Lloyd.
Și acest lucru este CS50.