[Powered by Google Translate] JOE MCCORMICK: Dus nu gaan we het hebben over variabelen.
Variabelen in de informatica zijn een manier om een ​​waarde op te slaan.
Nu, wat en hoe we slaan dat
waarde is niet te belangrijk.
We kunnen een waarde die is een woord, dat zou kunnen
opgeslagen als een string.
Of we kunnen iets dat is een personage,
als de letter een.
En dat zou worden opgeslagen als een char.
We kunnen een aantal, zoals een of 12, dat zou
opgeslagen als een geheel getal of een int.
Dan hebben we verschillende dingen zoals een vlotter, die kunnen worden opgeslagen
dingen als 1.01 of 111,13.
Deze waarden zijn altijd veranderlijk genoemd.
Dit betekent dat als we de opgeslagen nummer een in een geheel getal op
de top van een programma later we dat aantal veranderen
drie of zeven.
Nu, een lokale variabele is wat je meestal tegenkomt,
bij het uitvoeren van een functie.
Dus laten we zeggen dat je in je belangrijkste functie.
En je wilt een variabele met de naam num te creëren.
En we slaan een geheel getal in.
Dus we kunnen zeggen iets als int num = 3.
Nu, daar ga je.
Je hebt een lokale variabele.
Nu kan deze variabele later worden veranderd in de belangrijkste
functie, door iets te zeggen als num = 6 of num = 7.
Maar uw variabele zit vast in het
werkingssfeer van die functie.
En de omvang begint meestal met de accolade bij de
het begin van de hoofd-en eindigt met de accolade die
sluit de belangrijkste functie.
En deze lokale variabele wordt nu vast in dit kader.
Zodat er niet langer toegankelijk in een andere functie,
buiten de hoofdfunctie.
En zodra de belangrijkste functie beëindigt de uitvoering ervan en
terugkeert, wordt deze lokale variabele met de naam num verdwenen.
Dus in tegenstelling tot lokale variabelen, we iets
genoemd globale variabelen.
Nu wordt een globale variabele aangegeven bovenaan de
programma en kan overal worden geopend in het programma.
Dus laten we zeggen dat je uitgeroepen tot een globale variabele aan de bovenkant van
uw programma, genaamd test.
Nu kan deze variabele toegankelijk
overal in het programma.
Je zou kunnen toegang krijgen tot het in je hoofd functie of een functie
daaronder.
Maar als je ooit naar een lokale variabele te maken te proberen in een van de
deze functies, met dezelfde naam als
test, is er een conflict.
Omdat je niet weet welke variabele die u wilt gebruiken.
Wilt u de globale test te gebruiken,
verklaarde aan de top programma?
Of wil je de lokale variabele test die gebruik maken van
je probeert te creëren binnen deze functie?
Nu, dit is een van de redenen waarom we niet willen
gewoon gratis gebruik maken van globale variabelen.
Er is iets genaamd verrommeling van de naam ruimte.
Zelfs als je wil niet, kunt u per ongeluk een
lokale variabele, later in het programma, met dezelfde
naam als de globale variabele.
En dit vormt geen groot probleem als je werkt in
kleine 10, 20, 30-line programma's.
Zodra u tot duizenden regels code, dat doe je niet
weet nog precies wat u hebt opgeslagen voor globale variabele.
Dus een ding om te overwegen, bij het gebruik van lokale en globale
variabelen is om na te denken over hun bereik.
Nu toepassingsgebied betreft waar deze waarden worden gebruikt in
het programma.
Dus een globale variabele is wat mondiale reikwijdte heet,
betekent dat het kan overal worden gebruikt in het programma.
Zodra u initialiseren die variabele, kan het worden gebruikt in
elke functie, of het nu de belangrijkste functie of een
functie 10 functies neer, riep foo10.
Het maakt niet uit waar je het gebruikt.
Maar een lokale variabele heeft specifieke toepassingsgebied.
En de reikwijdte van die lokale variabele wordt bepaald door
waar het geïnitialiseerd.
Nu wordt het toepassingsgebied gewoonlijk bepaald door de opening
brace van de functie die de variabele wordt gedeclareerd in, totdat
het sluiten van brace van die functie.
Dus laten we zeggen dat je in de main functie.
En maakt u een variabele.
Maar nu, in deze belangrijkste functie, noemen we een andere
functioneren foo.
In de functie foo, kunnen we niet bellen met de variabele die we net
gemaakt in de belangrijkste functie omdat het niet in omvang.
Deze variabele is alleen in strekking zijn in de belangrijkste functie.
Dus we konden gebruiken verderop in de belangrijkste functie, maar
niet binnen een functie die wordt aangeroepen vanuit de hoofdfunctie.
Dus net als de stack en de heap, globale variabelen zijn
opgeslagen in een bepaald gedeelte van het geheugen.
Nu, dit deel van het geheugen is afhankelijk van het systeem dat
dat u gebruikt.
De globale variabelen hebben twee verschillende plaatsen dat ze
opgeslagen, een voor globale variabelen geïnitialiseerd, bijvoorbeeld als
je had verklaard int test = 5, aan de bovenkant van uw programma.
En het andere gebied is voor unitialized globale variabelen,
Als je net zei, int test, aan de bovenkant van uw programma en
zou de test variabelen instellen
later in het programma.
Dus nu ga ik het hebben over iets genaamd # define,
Dit is een manier om een ​​symbolische naam geven aan een constant.
En hier hebben we een voorbeeld van een C programma dat berekent
de oppervlakte van een cirkel.
En aan de bovenkant van het programma doen we iets dat zegt
# Define pi 3,14159.
# Define technisch gezien niet een globale variabele.
Het vertelt de compiler preprocessor
vinden en alle exemplaren van pi te vervangen door
3,14159 voordat je compileert.
Niettemin wordt een handige techniek te verklaren
constanten, voor gebruik gedurende de gehele programmaperiode.
Nu naar de oppervlaktefunctie, neemt in een vlotter
rad en retourneert alleen de oppervlakte van een cirkel met die
radius-of pi r kwadraat, of pi maal rad keer rad.
En dit is waar de # define speelt een belangrijke rol.
Omdat de compiler zal principe in de plaats dat pi
symbool met het nummer 3,14159.
En dus hebben we niet om die schrijven over en weer.
En later, als we besluiten om een ​​meer cijfers van pi te gebruiken, laten we
zeggen 3.1415926, we konden alleen maar toevoegen dat naar de top van de
programma en niet zou hebben om het te veranderen,
later in het programma.
Dit is een goed gebruik van # define.
We willen niet pi opslaan als een globale variabele, omdat het
kan later wijzigen in het programma.
En we weten pi verandert niet.
Het is een constante.
Dus dit rondt ons onderwerp van globale variabelen.
Dus vandaag hebben we gesproken over het verschil tussen lokale en
globale variabelen, wanneer ze te gebruiken, afhankelijk van hun
omvang, en waarom niet om globale variabelen te gebruiken naar believen
als gevolg van verrommeling van de naam ruimte.
Ik ben Joe McCormick.
En dit is CS50.