[Powered by Google Translate] JOE MCCORMICK: Taigi, dabar mes ketiname kalbėti apie kintamuosius.
Kintamieji kompiuterių mokslo būdas saugoti vertę.
Dabar, ką ir kaip mes saugome, kad
vertė yra ne per daug svarbūs.
Mes galime turėti vertę, kuri yra žodis, kad galėtų
turi būti saugomas kaip eilutė.
Arba mes galime turėti kažką, kad yra požymių,
kaip laiške.
Ir kad būtų saugomi kaip char.
Galėtume turėti numerį, kaip vienas ar 12, kad būtų
saugomi kaip sveikasis skaičius arba int.
Tada mes turime skirtingus dalykus, pavyzdžiui, plūdės, kuriose galima patalpinti
dalykų, pavyzdžiui, 1,01 arba 111,13.
Šios vertybės yra visada ragino permainingas.
Reiškia, kad jei mes saugomi numeris vienas sveikasis skaičius
viršuje programą vėliau, mes galime pakeisti, kad numeris
trijų ar septynių.
Dabar, vietos kintamasis yra tai, ką jūs paprastai susiduria su
, kai vykdant tam tikrą funkciją.
Tarkime, jūs per savo pagrindinę funkciją.
Ir norite sukurti kintamasis vadinamas num.
Ir mes saugoti sveikasis skaičius.
Taigi, mes galime pasakyti kažką panašaus į int num = 3.
Dabar ten jūs einate.
Turite vietos kintamąjį.
Dabar šis kintamasis gali būti pakeistas vėliau pagrindinis
funkcija, sakydamas kažką panašaus skaičius = 6 arba skaicius = 7.
Bet jūsų kintamasis įstrigo per
apimtis šią funkciją.
Ir taikymo sritis paprastai prasideda garbanotas petnešomis ne
pradžios pagrindinis ir baigiasi garbanotas petnešomis, kad
uždaroma pagrindinę funkciją.
Ir tai vietos kintamąjį dabar pakimba per šią sritį.
Todėl ji nebegali būti atvertas kitos funkcijos,
už pagrindinės funkcijos.
Ir kai pagrindinė funkcija baigia savo vykdymą ir
grąžą, tai vietos kintamąjį vadinamas skaičius dingo.
Taigi Priešingai nei lokalūs kintamieji, mes turime ką nors
"visuotiniai kintamieji.
Dabar, pasaulio kintamasis paskelbtas viršuje
programa ir gali būti prieinama bet kurioje programoje.
Tarkime, paskelbė pasaulinį kintamąjį viršuje
jūsų programa, vadinama testas.
Dabar šis kintamasis gali būti atvertas
bet kurioje programoje.
Jūs galite prieiti prie jį savo pagrindinę funkciją ar funkcija
žemiau, kad.
Bet jei jūs kada nors pabandyti sukurti kintamąjį, vienoje iš
šių funkcijų, su tokiu pačiu pavadinimu kaip
testas, ten konfliktas.
Nes jūs nežinote, iš jos kintama norite naudoti.
Ar norite naudoti bendrą bandymą,
viršuje programoje deklaruotas?
Ar jūs norite naudoti vietos kintamąjį bandymas, kad
bandote sukurti per šią funkciją?
Dabar, tai yra viena iš priežasčių, kodėl mes nenori
tiesiog naudoti globalių kintamųjų laisvai.
Yra kažkas vadinama cluttering pavadinimas erdvė.
Net jei jūs tai nereiškia, galite netyčia sukurti
vietos kintamąjį, o vėliau į programą, su tuo pačiu
vardas kaip pasaulinį kintamąjį.
Ir tai nekelia didžiulė problema, kai dirbate
maža 10, 20, 30-line programos.
Kai jūs turite tūkstančių eilučių kodo, jums nebus
prisiminti, ką turite saugomi pasaulinį kintamąjį.
Taigi vienas dalykas, apsvarstyti, naudojant vietos ir globalinės
kintamuosius galvoti apie jų taikymo sritį.
Dabar, apimtis tai, kur šie pokyčiai gali būti naudojamas
programa.
Taigi pasaulio kintamasis yra tai, kas vadinama pasaulio taikymo sritį,
tai reiškia, kad jis gali būti naudojamas bet kurioje programoje.
Kai jūs inicijuoti tas kintamo dydžio, jis gali būti naudojamas
bet kokia funkcija, ar tai būtų pagrindinė funkcija arba
funkcijos 10 funkcijų žemyn, vadinama foo10.
Nesvarbu, kur jūs naudojate jį.
Bet vietos kintamąjį turi konkrečią taikymo sritį.
Ir apimtis nustatoma pagal tos vietos kintamąjį
kur jis yra inicializuoti.
Dabar, taikymo sritis paprastai nustatomas remiantis atidarymo
petnešomis funkcija, kintamasis paskelbtas, kol
uždarymo petnešomis šią funkciją.
Tarkime, esate pagrindinės funkcijos.
Ir jūs sukurti kintamąjį.
Bet dabar, per šios pagrindinės funkcijos, mes vadiname kitą
veikti FOO.
Funkciniam foo, mes negali skambinti kintamasis mes tiesiog
sukurta pagrindinė funkcija, nes jis nėra komplekte.
Kad kintamasis yra tik pagrindinės funkcijos, taikymo sritį.
Taigi, mes galime jį naudoti toliau, per pagrindinę funkciją, bet
ne per funkcija, kuri yra vadinama pagrindinė funkcija.
Taigi, kaip kamino ir krūvos visuotiniai kintamieji yra
saugomi tam tikroje atminties.
Dabar, tai atminties dalis priklauso nuo sistemos, kad
jūs naudojate.
Visuotiniai kintamieji, turi du atskirus taškus, kad jie
saugomi, inicijuoti globalių kintamųjų, pavyzdžiui, jei
jums pareiškė, int testą = 5, prie jūsų programos viršuje.
, O kitas plotas yra prie unitialized globalių kintamųjų,
jei ką tik sakė, int testas, jūsų programos viršuje ir
ketina nustatyti bandymo kintamuosius
vėliau programoje.
Taigi, dabar aš ruošiuosi kalbėti apie vadinamąjį # define
, kuri yra būdas suteikti simbolinę vardas konstanta.
Ir čia mes turime pavyzdį C programą, kuri apskaičiuoja
apskritimo plotas.
Ir programos viršuje, mes padarysime kažką, kad sako
# Define pi 3,14159.
# Define nėra techniškai sukurti pasaulinį kintamąjį.
Atvirkščiai, jis pasakys, kompiliatorių, procesorių
rasti ir pakeisti visus pi atvejus
3,14159 prieš sudarant
Nepaisant to, jis tampa naudinga technika, pagal kurią
konstantos, naudoti visoje programoje.
Dabar žiūri vietovės funkcija, ji imasi plūdės
rad ir tiesiog grąžina apskritimo plotas su
spindulys arba pi r kvadratu, arba pi kartų rad kartų rad.
Ir tai, kur # define vaidina svarbų vaidmenį.
Nes kompiliatorių bus iš esmės pakeisti, kad pi
skaičius simbolis su 3,14159.
Ir todėl mes negalime parašyti, kad vėl ir vėl.
, O vėliau, jei mes nuspręsime naudoti daugiau skaitmenys pi, galime
pasakyti 3.1415926 tiesiog galėtume pridurti, kad į viršų
programa ir neturės jį pakeisti,
vėliau programoje.
Tai gerai panaudoti # define.
Mes nenorime laikyti Pi kaip pasaulinį kintamąjį, nes
vėliau galėtų pakeisti programoje.
Ir mes žinome, Pi nekeičia.
Tai pastovus.
Taigi, šis apsiaustas iki mūsų tema globalių kintamųjų.
Taigi, šiandien mes kalbėjome apie skirtumo tarp vietos ir
visuotiniai kintamieji, kada juos naudoti, atsižvelgiant į jų
taikymo sritį, ir kodėl gi ne naudoti globalių kintamųjų bus
dėl cluttering pavadinimą erdvės.
Aš esu Joe McCormick.
Ir tai yra CS50.