[Powered by Google Translate] DAVID DICIURCIO: Allura kunċett importanti biex taqbadha fil programmazzjoni huwa l-kunċett ta 'ambitu. Kamp ta 'applikazzjoni jista' jiġi definit bħala l-kuntest li fih il-varjabbli huwa viżibbli jew aċċessibbli. Per eżempju, ejja ngħidu li għandna funzjoni, prinċipali, jiġifieri suppost inkrement varjabbli, x, minn sena sa tnejn. Kif nistgħu naraw, prinċipali initializes x għal wieħed, stampi out xi test, allura jibda l-inkrement funzjoni, qabel ma istampar test aktar. Jekk din il-funzjoni kellu jimxi sew, ikun jistampa x bħala 2. Ejja nippruvaw dan. Allura, kif tistgħu taraw, prinċipali ma tagħmel dak li aħna mistennija li. Hija lura l-valur 1, pjuttost milli l-2 konna qed nistennew. Ir-raġuni għal dan bug jista 'jiġi spjegat mill-ambitu. Fil-funzjoni, prinċipali, aħna initialized x biss fi ħdan il-funzjoni. Fi kliem ieħor, il-x varjabbli huwa ddikjarat lokalment fi ħdan l- funzjoni, prinċipali, u ma jkunx aċċessibbli barra tal-funzjoni. Biss prinċipali tista 'aċċess x f'din is-sitwazzjoni. Meta nitolbu żieda ma ngħaddux x bħala l-input, imma sempliċement kopja ta 'x. Bħala riżultat ta 'dan, l-inkrement funzjoni biss iżid il-valur ta '1 għal kopja tal-valur ta' x. Iżda mhux għal x innifsu. Meta nerġgħu lura għal prinċipali, x nnifisha ma nbidel f'xejn. Allura stampar x biss se jagħtu l-valur ta '1. Ukoll, allura li tħalli l-kwistjoni: kif għandna tiffissa din il-funzjoni? Soluzzjoni waħda hija li inkrement ritorn ta 'valur. B'dan il-mod, l-inkrement funzjoni se agħtina lura numru sħiħ. Allura hawnhekk il-kodiċi rivedut tagħna ma 'l- funzjoni sostitut inkrement. Hawnhekk, aħna minflok lura l-x + 1, aktar milli biss il-għan ma x tkun ugwali għal x + 1. Ukoll, jieħdu l-avviż li aħna mibdula l-produzzjoni ta ' inkrement, qabel null, bil int, li jiddikjara li inkrement issa se jgħaddu lura valur sħiħ. Issa, wara runs inkrementali, se terġa 'lura b'valur ta' 2, eżattament kif aħna maħsub. Sitwazzjoni oħra li turi importanza ambitu tal- huwa fil scopeloop.c. F'dan il-kodiċi, aħna għandna biex linja fejn il-varjabbli total huwa initialized matul kull pass. Sfortunatament, dan il-kodiċi ma jikkumpilaw. Dan huwa minħabba li t-total varjabbli fil-fatt ma jeżistix barra l-linja ta '. Varjabbli ddikjarati fi ħdan linji jeżisti biss fi ħdan il- loop innifsu u hija murija bi żball tagħna , messaġġ total mhux iddikjarat. It-total varjabbli għad trid tiġi dikjarata fl-ambitu tal-funzjoni prinċipali. Barra minn hekk, matul kull iterazzjoni ta 'tagħna għall loop, aħna huma reinitializing totali tagħna għal 0. Dan fih innifsu ma jżommx il-kodiċi mill-kompilazzjoni, imma tipprevjeni totali minn qatt jingħaddu għal valur passat 1. Għal darb'oħra, dak li hu l-aħjar mod biex jiffissaw dan? Wieħed mill-metodi eħfef tinkludi li total lokali biex il-funzjoni, prinċipali, minflok għal-linja innifsu. Dan se totali li fil-fatt inkrement, u finalment, jippermettu li jiġu stampati wara l-linja ta '. Teknika oħra li jien ser biss fil-qosor tqassar kieku jkun l-użu ta 'varjabbli globali. Varjabbli globali huma varjabbli li huma ddikjarati qabel prinċipali li jżommu l-valur tagħhom matul il-programm kollu. Of course, il-funzjonijiet jistgħu jibdlu l-valur ta 'globali, iżda dawn ma jmorrux barra mill-iskop bħal varjazzjonijiet lokali. Madankollu, bl-użu varjabbli globali tendenza li jkunu frowned fuq bħala disinn ħażin, peress li hemm modi aħjar ta ' kondiviżjoni ta 'data fost funzjonijiet. Per eżempju, bl-użu pointers. Iżda aktar fuq dan ieħor żmien. Fl-aħħarnett, huwa importanti li jkollhom għarfien ta 'ambitu fil-kuntest tal-memorja tal-kompjuter, jew RAM. Meta aħna tesegwixxi programm, varjabbli lokali u l-funzjonijiet huma miżjuda ma 'lokazzjoni speċifika fil- RAM imsejjaħ il-munzell. Kif funzjonijiet ritorn, il-frejms munzell tal-varjabbli huma effettivament imneħħi mill-munzell ħelsien memorja aktar. Allura meta jirrevedi ambitu, kun ċert li tiftakar dawn it-tliet punti ewlenin. Wieħed, l-ambitu jista 'jkun jew lokali jew globali. Hija tiddependi fuq fejn il-varjabbli huwa ddikjarat. Żewġ, varjabbli dikjarati jew initialized fil-funzjonijiet huma lokali biex dik il-funzjoni u ma jistgħux jinbidlu b'mezzi oħra funzjonijiet, almenu mhux mingħajr l-użu pointers. Fl-aħħarnett, varjabbli huma wkoll lokali għal-linji li huma iddikjarati taħt. Il-varjabbli ma jkunux aċċessibbli barra tal-linja. Li kollox għal issa fuq firxa. Grazzi għall-ħars.