[Powered by Google Translate] DAVID DICIURCIO: Deci, un concept important de înțeles în Programarea este noțiunea de aplicare. Domeniul de aplicare poate fi definită ca contextul în care o variabilă este vizibile sau accesibile. De exemplu, să presupunem că avem o funcție, principal, care este Trebuia să incrementa o variabilă, x, de la o la doi. După cum putem vedea, initializeaza principal de x la unul, imprimă out un text, apoi ruleaza creșterea funcția, înainte de imprimarea mai mult text. În cazul în care această funcție a fost pentru a rula corect, aceasta ar imprima x ca 2. Hai să încercăm. Deci, după cum puteți vedea, principala nu face ceea ce ne-am asteptat sa. Ea returnează valoarea 1, mai degrabă decât ne-am așteptat 2. Motivul pentru acest bug poate fi explicat prin domeniul de aplicare. În funcție, principal, am inițializat x numai în funcție. Cu alte cuvinte, variabila x este declarată la nivel local în cadrul funcție, principal, și nu este accesibilă în afara funcției. Numai principal poate accesa x în această situație. Când numim creștere nu ne trece x ca intrare, dar doar o copie a lui x. Ca urmare a acestui fapt, funcția de creștere doar adaugă valoarea 1 la o copie de valoarea lui x. Dar să nu se x. Când ne-am întoarce la principal, x-zis nu a schimbat deloc. Deci, imprimarea x va produce numai valoarea 1. Ei bine, atunci lasă că întrebarea: cum ar trebui să ne stabilească această funcție? O soluție are increment returna o valoare. În acest fel, creșterea funcția va fi să ne dea înapoi un număr întreg. Deci, aici e codul nostru revizuit cu supleant creștere funcție. Aici, ne-am întors în locul x + 1, mai degrabă decât doar sfârșitul cu x fiind egală cu x + 1. De asemenea, ia observați că am înlocuit de ieșire a creștere, anularea în prealabil, cu int, afirmând că incrementului va trece acum înapoi o valoare întreagă. Acum, după ce ruleaza de creștere, se va întoarce cu o valoare de 2, exact așa cum ne-am propus. O altă situație care demonstrează importanța domeniului de aplicare al este în scopeloop.c. În acest cod, avem o buclă, în care pentru variabila totală este inițializat în timpul fiecare pas. Din păcate, acest cod nu compila. Acest lucru se datorează faptului că, de fapt variabilă totală nu există în afara de bucla. Variabilele declarate în interiorul bucle există doar în cadrul buclă în sine și este demonstrat în eroare noastră mesaj, totala nedeclarate. Variabilă totală nu a fost încă să fie declarat în cadrul domeniului de aplicare din funcția principală. În plus, la fiecare repetare a buclei nostru pentru, ne sunt total de reinitializing nostru la 0. Acest lucru în sine nu ține codul din compilarea, dar ar împiedica total de la vreodată ajungând la o valoare de trecut 1. Din nou, ceea ce este cel mai bun mod de a rezolva acest lucru? Una dintre cele mai simple metode de a face include totală local funcția, principal, mai degrabă decât la bucla sine. Acest lucru va totaliza să incrementa de fapt, și, în final, permite să fie tipărite după bucla for. O alta tehnica pe care o voi rezuma doar pentru scurt timp ar fi utilizarea de variabile globale. Variabilele globale sunt variabile, care sunt declarate înainte de principal care menține valoarea lor de-a lungul întregului program. Desigur, functiile pot modifica valoarea unui nivel global, dar ele nu ies din sfera de aplicare ca variabile locale. Cu toate acestea, folosind variabile globale tinde să se încruntă la ca design de rău, deoarece există modalități mai bune de schimbul de date între funcții. De exemplu, folosind pointeri. Dar mai multe despre asta altă dată. În cele din urmă, este important să aibă o înțelegere a domeniului de aplicare în contextul memoria computerului, sau RAM. Când ne-am executarea unui program, variabilele locale și funcții se adaugă într-o anumită locație, în RAM numită stivă. Ca retur funcții, cadrele stack ale variabilelor sunt eliminat eficient din stiva de eliberarea mai multă memorie. Deci, atunci când revizuirea domeniului de aplicare, asigurați-vă că vă amintiți aceste trei puncte-cheie. Unul, domeniul de aplicare poate fi local sau global. Aceasta depinde în cazul în care variabila este declarată. Două variabile, declarate sau inițializată în funcții sunt locale pentru această funcție și nu poate fi schimbat de către alte funcții, cel puțin nu fără a utiliza pointeri. În cele din urmă, variabilele sunt, de asemenea, bucle locale pentru care sunt a declarat în cadrul. Variabilele nu sunt accesibile în afara buclei. Asta e tot pentru acum pe domeniul de aplicare. Multumesc pentru vizionare.