DOUG Lloyd: Kun aloitat kanssa tehtﾃ､vﾃ､t,
toinen asia on tulossa todella tﾃ､rkeﾃ､ﾃ､ ymmﾃ､rtﾃ､ﾃ､,
joka on kﾃ､site kiikaritﾃ､htﾃ､imellﾃ､.
Joten soveltamisala on ominaisuus muuttujan
joka mﾃ､ﾃ､rittelee josta toiminnot ettﾃ､ muuttuja voidaan kﾃ､yttﾃ､ﾃ､.
>> On olemassa kaksi ensisijaista laajuuksia C, paikalliset muuttujat ja globaaleja muuttujia.
Nyt paikalliset muuttujat voi vain kﾃ､siksi sisﾃ､llﾃ､ tehtﾃ､vﾃ､t
jossa ne on luotu.
Niitﾃ､ ei voi kﾃ､yttﾃ､ﾃ､ joka toinen toiminto, joka on olemassa ohjelma,
vain toiminto joita varten se luotiin.
Globaaleja muuttujia, on Toisaalta pﾃ､ﾃ､see
millﾃ､ tahansa toiminto-ohjelman.
Ja syy siihen on koska he eivﾃ､t luotu sisﾃ､llﾃ､
minkﾃ､ﾃ､n tietyn toiminnon.
Me julistamme niitﾃ､ ulkopuolella kaikki toiminnot, jotka
tarkoittaa, ettﾃ､ jokainen toiminto tietﾃ､ﾃ､ missﾃ､ se on ja voi kﾃ､yttﾃ､ﾃ､ ja manipuloida sitﾃ､.
>> Toistaiseksi aikana olet melko paljon tyﾃｶskennellyt yksinomaan
paikallisten muuttujien.
Tﾃ､ssﾃ､ on esimerkki hyvin, hyvin yksinkertainen pﾃ､ﾃ､tehtﾃ､vﾃ､ ja hyvin yksinkertainen
lisﾃ､toiminto ettﾃ､ olemme kirjoitettu.
Tﾃ､ssﾃ､ tapauksessa, x, joka Olen vﾃ､rillinen vihreﾃ､ juuri
Korosta paikkakunnan tai soveltamisalaa muuttuja,
on paikallinen toiminto kolminkertainen.
Tﾃ､rkeimmﾃ､t voi viitata x lainkaan.
Se ei tiedﾃ､, mitﾃ､ se on.
Mikﾃ､ﾃ､n muu toiminto, itse asiassa, jos me oli lisﾃ､toimintoja tﾃ､ﾃ､llﾃ､,
voisi viitata X.
>> Samoin tuloksia, joita olen vﾃ､rillinen sininen, on paikallinen vain tﾃ､rkeimmﾃ､t.
Vain tﾃ､rkeimmﾃ､t tietﾃ､ﾃ､ mitﾃ､ muuttuja tulos on.
kolminkertainen voi kﾃ､yttﾃ､ﾃ､ sitﾃ､.
>> Nyt kuten mainitsin, globaaleja muuttujia olemassa.
Jos toteaa, ettﾃ､ muuttuja ulkopuolella minkﾃ､ﾃ､n toiminnon,
kaikki toiminnot ohjelma voi viitata siihen.
Joten tﾃ､ssﾃ､ tapauksessa olen korostettu vihreﾃ､ globaali muuttuja ilmoitus.
Tﾃ､ssﾃ､ tapauksessa, muuttuja julistetaan
kutsutaan maailmanlaajuinen, vain erittﾃ､in selkeﾃ､ siitﾃ､.
Se on tyyppiﾃ､ float.
Ja minﾃ､ antaa se arvo 0,5050.
>> Huomaat, ettﾃ､ pﾃ､ﾃ､- ja kolminkertainen, voin viitata maailmanlaajuiseen.
Ja itse asiassa, jos menen lﾃ､pi ohjelman kuten, tﾃ､rkein ensin puhelut kolminkertainen,
kolminkertainen kertoo maailmanlaajuista 3, joka asettaa sen arvo 1,5-jotain,
1,51 tai jotain, ja sitten tﾃ､rkein myﾃｶs tulostaa arvo
maailmanlaajuisen.
Joten tﾃ､rkein ei tulostaa 0,5050, se tulostaa Global Times 3, 1.51.
Joten sinun tﾃ､ytyy olla varovainen, kun olet tyﾃｶskennellyt globaaleja muuttujia.
Vaikka ne ovat hyvin joustava voisivat vﾃ､littﾃ､ﾃ､ tiedot
noin niin, ettﾃ､ jokainen toiminto voi kﾃ､yttﾃ､ﾃ､ sitﾃ､,
se voi myﾃｶs olla joitakin vaarallisia seurauksia
jos yksi toiminto muutoksia arvo muuttujan
ennen odotat sen muuttaa.
>> Miksi tﾃ､mﾃ､ ero vﾃ､liﾃ､?
Miksi me vﾃ､litﾃ､ siitﾃ､ joitakin muuttujia ovat paikallisia ja toiset ovat maailmanlaajuisia?
No, suurin osa, paikalliset muuttujat C ovat mitﾃ､ kutsutaan ohi arvo
kun teemme funktiokutsu.
Mitﾃ､ se tarkoittaa?
>> No, kun muuttuja on kulunut arvon mukaan callee, joka
on toinen tapa sanoa toiminto joka vastaanottaa muuttuja, joka
saa siirtﾃ､ﾃ､ vuonna tulona, 窶銀虐e todella ei saa, ettﾃ､ muuttuja itse.
Se saa oman kopio tyﾃｶskennellﾃ､.
Tﾃ､mﾃ､ on todella tﾃ､rkeﾃ､ ero.
Olemme vain nﾃ､ki toinen sitten ettﾃ､ globaalien muuttujien,
jos me manipuloida maailmanlaajuisia muuttuja yksi funktio, vaikutus
ettﾃ､ yksi toiminto kuljettaa lﾃ､pi joka toinen toiminto.
>> Mutta paikallisia muuttujia, se ei ole totta.
Jokainen toiminto, kun se vastaanottaa muuttujat syﾃｶtteenﾃ､
saada jﾃ､ljennﾃｶkset nﾃ､istﾃ､ muuttujista, ei muuttujia itse.
Joten mikﾃ､ on sivuvaikutus, ettﾃ､?
Tﾃ､mﾃ､ tarkoittaa sitﾃ､, ettﾃ､ muuttuja soittajan, toiminto,
tekee funktiokutsua, on ennallaan ellet ohittaa sen.
>> Esimerkiksi tﾃ､mﾃ､ koodi foo ei muuteta lainkaan.
Int foo vastaa 4, soita kolminkertainen foo sisﾃ､llﾃ､ triple,
me odottaa, ettﾃ､ foo olisi kerrotaan 3 ja palautetaan,
mutta siellﾃ､ oikeastaan 窶銀砧itﾃ､ﾃ､n vaikutusta.
>> Tﾃ､ssﾃ､ kuitenkin hyvin hiuksenhieno ero.
Tﾃ､mﾃ､ ei ole vaikutusta haluamme.
Nﾃ､etkﾃｶ, miksi?
Olemme pakottavista foo pﾃ､ﾃ､ tﾃ､llﾃ､ kertaa.
>> Joten int foo vastaa 4, foo vastaa kolminkertainen foo, kun teemme tﾃ､tﾃ､ kehotusta,
kolminkertainen saa oman kopion foo, oma kopio 4.
Siinﾃ､ sanotaan palata 4 kertaa 3, tai mitﾃ､ tahansa muuttuja saa siirtﾃ､ﾃ､ aikoina 3.
Ja sitten asetamme paluu arvo kolminkertaisena foo uudelleen.
Joten tﾃ､mﾃ､ todella olisi korvaa foo.
Tﾃ､mﾃ､ on ainoa tapa tehdﾃ､ tﾃ､mﾃ､ paikallisten muuttuja.
Joten nyt jos lisﾃ､ﾃ､mme uuden koodiriviﾃ､ tﾃ､ﾃ､llﾃ､
lopussa Main tulostaa arvo foo,
se olisi todellakin tulostaa 12.
>> Kiikaritﾃ､htﾃ､imellﾃ､ on yleensﾃ､ ei liian suuri ongelma
jos nimi kaikki muuttujien eri asioita.
Mutta se voi saada sellaista ilkeﾃ､ jos sama muuttujan nimi
esiintyy useita toimintoja, joka tapahtuu paljon.
Jos joskus ei toimi todellisessa maailmassa, jossa
olet tyﾃｶskennellyt yhteistyﾃｶssﾃ､ ohjelmia ja ihmisiﾃ､ eri tiimien
tyﾃｶskentelevﾃ､t yhdessﾃ､ kirjoittaa saman ohjelma tai samoja ohjelmia,
he usein uudelleen muuttuja nimiﾃ､, varsinkin yhteisiﾃ､,
kuten x, y, i, j, ja niin edelleen.
>> Mutta kun muuttujia on sama nimi, soveltamisala kysymykset
voi saada hieman hankalampi jﾃ､sentﾃ､ﾃ､.
Esimerkiksi, tiedﾃ､tkﾃｶ mitﾃ､ tulostettavissa
lopussa kyseisen ohjelman?
Kestﾃ､ﾃ､ hetken.
Tauko video ja lukea ohjelman kautta.
Voit nﾃ､hdﾃ､ huipulla me on toiminto ilmoitus
sillﾃ､ toiminto nimeltﾃ､ﾃ､n lisﾃ､ys.
Tﾃ､mﾃ､ toiminto ottaa yhden parametri, kokonaisluku jota kutsumme X.
Ja se tuottaa kokonaisluku.
Se palautuva alussa.
>> Sitten meillﾃ､ on tﾃ､rkein, pari riviﾃ､ koodia main, joista viimeinen
on print.
Ja muista, ettﾃ､ on kysymys tﾃ､ﾃ､llﾃ､.
Mitﾃ､ todella olemaan painettu lopussa tﾃ､mﾃ､n toiminnon?
Ja sitten meillﾃ､ on todellakin mﾃ､ﾃ､ritelmﾃ､ lisﾃ､ys alla.
>> Joten kestﾃ､ﾃ､ hetken, selata koodi, jﾃ､ljittﾃ､ﾃ､ asioita.
Tiedﾃ､tkﾃｶ mitﾃ､ tulostetaan loppuun kyseisen ohjelman?
>> Selvﾃ､.
Toivottavasti olet ottanut muutaman sekunnin yrittﾃ､ﾃ､ jﾃ､sentﾃ､ﾃ､ tﾃ､tﾃ､ ulos.
Tehdﾃ､ﾃ､n se yhdessﾃ､.
>> Joten olen yliviivattu lisﾃ､ys n ilmoitus ylﾃ､reunassa siellﾃ､.
Se oli tavallaan hﾃ､iriﾃｶtekijﾃ､.
Se ei ole sen oma muuttuja.
Se ei ole omaa soveltamisalaa.
Se on vain toiminto ilmoitus, niin tarkoituksiin
yrittﾃ､ﾃ､ jﾃ､sentﾃ､ﾃ､, mitﾃ､ on tapahtuu tﾃ､ssﾃ､ ohjelmassa,
voisimme yhtﾃ､ hyvin vain vﾃ､lttﾃ､ﾃ､ sitﾃ､.
>> Nyt meillﾃ､ on tﾃ､ssﾃ､ asiassa, Syynﾃ､ tﾃ､hﾃ､n ongelmaan on hankala
on koska meillﾃ､ on paikallisia muuttujia sekﾃ､ pﾃ､ﾃ､- ja kasvu, joista kukin
on nimeltﾃ､ﾃ､n X.
Ja tietenkin ydin tﾃ､mﾃ､ kysymys on yrittﾃ､ﾃ､ tajuta jossa X saa muuttaa
ja miten se saada muuttunut.
Joten olen vﾃ､rillinen kaikissa tapauksissa x, joka on paikallinen to main punainen.
Ja olen vﾃ､rillinen jokaisen esiintymﾃ､n X, joka on paikallinen kasvattamaan sininen.
>> Ilmoituksen, ettﾃ､ kolmannella rivillﾃ､ tﾃ､rkeimpien, y on yhtﾃ､ kuin lisﾃ､ys
X, ettﾃ､ lisﾃ､ys ei ole lﾃ､pﾃ､issyt Mainin X, tai punaista X.
Se alkaa kulunut siitﾃ､ kopion.
Ja se on vain menossa tyﾃｶskennellﾃ､ ettﾃ､ kopio, sininen X.
Jos olet matemaattisesti kalteva, saatat
ovat sen sijaan ajatellut tﾃ､tﾃ､ X osa m tﾃ､rkein ja X osa i lisﾃ､ys.
Mutta se on sama ajatus.
X sub m, tai punainen x: t edellisen dian,
ovat muuttujia, jotka ovat local-- on esimerkiksi x pikemminkin
on paikallinen tﾃ､rkein, ja X osa I, tai sininen muuttujat edellisen dian,
ovat esimerkkejﾃ､ X: ovat paikallista aikaa kasvattaa.
>> Joten, olit pystyﾃ､ selvittﾃ､ﾃ､, mitﾃ､ tﾃ､mﾃ､ toiminto painettu lopussa?
Olen Doug Lloyd, ja tﾃ､mﾃ､ on CS50.