[Powered by Google Translate] DAVID DICIURCIO: Taigi svarbi sąvoka suvokti programavimas apimties sąvoka. Apimtis gali būti apibrėžta kaip kontekstą, kuriame kintamasis yra matomas ar prieinamas. Pavyzdžiui, tarkime, kad turime funkciją, pagrindinį, tai yra turėtų prieaugio kintamasis, x, 1-2. Kaip matome, pagrindinis inicijuoja į vieną X, grafika kai kurie tekstą, tada paleidžia funkciją prieaugį, prieš daugiau teksto spausdinimą. Jei ši funkcija buvo, kad tinkamai paleisti, tai būtų spausdinti x kaip 2. Pabandykime. Taigi, kaip matote, pagrindinis ne daryti tai, ką mes tikėjomės. Ji grąžina reikšmę 1, o nei 2 tikėjomės. Šios klaidos priežastis galima paaiškinti taikymo sritį. Funkcijos, pagrindiniai, mes inicijuoti x tik per funkcija. Kitaip tariant, kintamasis x yra nurodomas jų vietinį vežimą kaip apibrėžta funkcija, pagrindinė, ir yra neprieinama ne funkcija. Vienintelis svarbiausias šioje situacijoje gali naudotis x. Kai mes vadiname prieaugį mes neperduoda x įėjimo, bet tik x kopiją. Kaip šis, funkcija prieaugis tik prideda vertė 1 x vertės kopiją. , Bet ne x. Kai mes grįžti į pagrindinį x nepareiškė pasikeitė. Taigi spausdinti x bus matomi tik vertė yra lygi 1. Na, tada, kad palieka klausimą: kaip mes turėtume nustatyti ši funkcija? Vienas iš sprendimų yra prieaugis grąžina reikšmę. Tokiu būdu, ši funkcija prieaugis suteikia mums atgal sveikasis skaičius. Taigi štai mūsų patikslintą kodą su pakaitinis prieaugis funkcija. Čia mes vietoj grąžino x + 1, o ne vien tik pabaigoje x x + 1 yra lygus. Be to, reikia pastebėti, kad mes pakeisti išėjimo prieaugis, anksčiau buvo pripažintas negaliojančiu, int, kuriame teigiama, kad prieaugis dabar bus perduoti atgal skaitinę vertę. Dabar po prieaugio veikia, grįš, kurių vertė 2, tiksliai taip, kaip mes skirti. Kita situacija, kuri parodo taikymo sritį svarbą yra mieste scopeloop.c. Šiuo kodu mes už linijos, kurioje kintamasis viso yra inicializuoti prie sekančio žingsnio. Deja, šis kodas nėra sudaryti. Tai yra, nes kintamasis viso faktiškai neegzistuoja ne už kilpos. Kintamieji deklaruojami per kilpos egzistuoja tik kilpa pati ir parodė savo klaidą pranešimą, bendras nedeklaruoto. Kintamasis iš viso dar turi būti deklaruotos taikymo sritį funkcijos pagrindinis. Be to, per kiekvienas iš mūsų iteracija kilpa, mes mūsų iš viso 0 reinitializing. Tai savaime nėra išlaikyti kodą rengtų, bet jis neleistų iš viso kada nors sumuojant kurių vertė per pastaruosius 1. Vėlgi, kas yra geriausias būdas išspręsti šią problemą? Vienas iš lengviau metodų yra viso vietos iki funkcija, pagrindinė, o ne kilpą pati. Tai bus iš viso faktiškai prieaugio ir, galiausiai, kad ji būtų palikus už linijos. Kitas būdas, kad aš tik trumpai apibendrinti globalių kintamųjų naudojimas. Globalūs kintamieji yra kintamieji, kurie deklaravo prieš pagrindinius valgymus. kad išlaikyti savo vertę per visą programos. Žinoma, funkcijos gali pakeisti pasaulio vertę, tačiau jie neturi išeiti taikymo sritį, pavyzdžiui, vietos kintamieji. Tačiau, naudojant globalių kintamųjų linkęs būti brwi ant taip blogai dizaino, nes yra geresnių būdų keistis duomenimis tarp funkcijų. Pavyzdžiui, naudojant rodykles. Kad kitą kartą, bet daugiau. Galiausiai, labai svarbu turėti supratimą taikymo sritį kompiuterio atmintyje arba atminties. Kai mes vykdyti programą, vietos kintamieji ir funkcijos yra įtraukta į konkrečią vietą RAM vadinamas kamino. Stack rėmai kintamųjų funkcijos grąžina, veiksmingai pašalintos iš kamino, atlaisvinti daugiau atminties. Taigi, peržiūrint taikymo sritį, įsitikinkite, kad jums prisiminti šiuos tris pagrindiniai punktai. Vienas, apimtis gali būti arba vietos ar pasaulio. Tai priklauso nuo to, kurioje kintamasis yra paskelbta. Du, paskelbti ir inicijuoti funkcijų kintamieji yra vietos tą funkciją ir negali būti pakeista kitais funkcijas, bent jau ne be naudojant rodykles. Galiausiai, kintamieji taip pat vietos į kilpas, kurios yra deklaruojamas KN. Kintamieji yra neprieinami už kilpos. Štai ir viskas dabar su direktyvos taikymo sritimi. Thanks for watching.