[Powered by Google Translate] JOE MCCORMICK: Så nå skal vi snakke om variabler.
Variabler i informatikk er en måte å lagre en verdi.
Nå, hva og hvordan vi lagrer denne
Verdien er ikke så viktig.
Vi kan ha en verdi som er et ord, som kunne
lagres som en streng.
Eller vi kunne ha noe som er et tegn,
som bokstaven a.
Og det vil bli lagret som en røye.
Vi kunne ha en rekke, som en eller 12, som ville være
lagret som et heltall eller en int.
Da har vi forskjellige ting som en dupp, som kan lagre
ting som 1.01 eller 111,13.
Disse verdiene er alltid kalt foranderlig.
Noe som betyr at hvis vi lagret nummer én i et heltall ved
toppen av et program senere, kan vi endre dette nummeret til
være tre eller sju.
Nå er en lokal variabel hva du vanligvis møter,
når utføre en funksjon.
Så la oss si at du i din viktigste funksjon.
Og du ønsker å opprette en variabel kalt num.
Og vi vil lagre et heltall i den.
Så vi kan si noe sånt som int num = 3.
Nå er det du går.
Du har en lokal variabel.
Nå kan denne variabelen endres senere i hoved
funksjon, ved å si noe sånt som num = 6 eller num = 7.
Men variabelen er fast i
omfanget av denne funksjonen.
Og omfanget starter typisk med krøllete spenne på
begynnelsen av hoved-og slutter med den krøllete seler som
stenger ute den viktigste funksjonen.
Og denne lokale variabelen er nå fast i dette området.
Så det kan ikke lenger nås i en annen funksjon,
utenfor den viktigste funksjonen.
Og når den viktigste funksjonen fullfører gjennomføring og
avkastning, er denne lokale variabel kalt num borte.
Så i motsetning til lokale variabler, har vi noe
kalt globale variabler.
Nå er en global variabel deklarert på toppen av
program og kan nås hvor som helst i programmet.
Så la oss si at du erklært en global variabel på toppen av
programmet, kalt test.
Nå kan denne variabelen nås
hvor som helst i programmet.
Du kan få tilgang til den i din viktigste funksjon eller en funksjon
under det.
Men hvis du noen gang prøvd å lage en lokal variabel i en av
disse funksjoner, med samme navn som
test, det er en konflikt.
Fordi du ikke vet hvilken variabel du vil bruke.
Ønsker du å bruke den globale test,
erklærte øverst programmet?
Eller ønsker du å bruke den lokale variabelen test som
du prøver å skape i denne funksjonen?
Nå er dette en av grunnene til at vi ikke ønsker å
bare bruke globale variabler fritt.
Det er noe som heter cluttering navnerommet.
Selv om du ikke mener å, kan du ved et uhell lager et
lokal variabel, senere i programmet, med samme
navn som den globale variabelen.
Og dette ikke utgjør et stort problem når du arbeider i
10 små, 20, 30-linjers programmer.
Når du har opp til flere tusen linjer med kode, vil du ikke
huske nøyaktig hva du har lagret for global variabel.
Så én ting å vurdere, når du bruker lokal og global
variabler er å tenke på sitt omfang.
Nå, refererer omfang til hvor disse variablene kan brukes i
programmet.
Så en global variabel har det som kalles global omfang,
noe som betyr at det kan brukes hvor som helst i programmet.
Når du initialisere den variabelen, kan den brukes i
noen funksjon, enten det er den viktigste funksjonen eller
funksjon 10 funksjoner ned, kalt foo10.
Det spiller ingen rolle hvor du bruker den.
Men en lokal variabel har bestemt omfang.
Og omfanget av den lokale variable bestemmes av
hvor det blir initialisert.
Nå, er omfanget typisk bestemt av åpningen
spenne av funksjonen at variabelen er deklarert inn, til
lukking spenne av den funksjonen.
Så la oss si at du er i den viktigste funksjonen.
Og du oppretter en variabel.
Men nå, i denne hovedfunksjon, kaller vi en annen
fungere foo.
I funksjonen foo, kan vi ikke kalle variabelen vi bare
opprettet i den viktigste funksjonen, fordi det ikke er i omfang.
Variabelen er bare i omfang innen den viktigste funksjonen.
Så vi kunne bruke det videre, innenfor den viktigste funksjonen, men
ikke innenfor en funksjon som kalles fra den viktigste funksjonen.
Så som bunken og haugen, globale variabler er
lagret i en bestemt del av minnet.
Nå avhenger denne delen av minnet på systemet som
du bruker.
De globale variabler har to separate flekker som de er
lagret, en for initialisert globale variabler, for eksempel hvis
du hadde erklært int test = 5, på toppen av programmet.
Og det andre området er for unitialized globale variabler,
Hvis du nettopp sa, int test, på toppen av programmet og
skulle sette de testvariablene
senere i programmet.
Så nå er jeg kommer til å snakke om noe som kalles # define,
som er en måte å gi en symbolsk navn til en konstant.
Og her har vi et eksempel på et C-program som beregner
arealet av en sirkel.
Og på toppen av programmet vil vi gjøre noe som sier
# Define pi 3.14159.
# Define ikke teknisk skape en global variabel.
Snarere, forteller den kompilatorens preprosessor til
finne og erstatte alle forekomster av pi med
3,14159 før kompilering.
Likevel blir det en nyttig teknikk for å erklære
konstanter, for bruk i hele programmet.
Nå, se på området funksjonen, tar det i en flottør
rad og bare returnerer arealet av en sirkel med at
radius eller pi r squared, eller pi ganger rad ganger rad.
Og det er her # define spiller en viktig rolle.
Fordi kompilatoren vil i utgangspunktet erstatte den pi
symbol med antall 3,14159.
Og så vi ikke trenger å skrive det om og om igjen.
Og senere, hvis vi bestemmer oss for å bruke en mer sifrene pi, la oss
sier 3.1415926, kunne vi bare legge det til toppen av
program og ville ikke trenger å endre det,
senere i programmet.
Dette er en god bruk av # define.
Vi ønsker ikke å lagre pi som en global variabel fordi det
kan endre senere i programmet.
Og vi vet pi endres ikke.
Det er en konstant.
Så dette brytes opp vår temaet globale variabler.
Så i dag snakket vi om forskjellen mellom lokale og
globale variabler, når du bruker dem, avhengig av deres
omfang, og hvorfor ikke bruke globale variabler på vilje
på grunn av rot i navnerommet.
Jeg er Joe McCormick.
Og dette er CS50.