Увод в програмирането
alpha
|
В тялото на функция могат да се дефинират вътрешни променливи. Те са определени от мястото на дефиниране до края на съответната функция или това е тяхната област на действие. Външните променливи се дефинират в началото на програмата, преди всички функции или се дефинират между функциите в първичния файл. Те са определени от мястото на дефиниране до края на първичния файл. По такъв начин една външна променлива може да се използва от различни функции и чрез нея да се предават стойности между функциите. Имата на външните променливи трябва да бъдат уникални в първичния файл
Ако в дадена функция се среща вътрешна променлива с име, съвпадащо с това на външните променливи, то вътрешната променлива скрива външната променлива в своята област на действие.
Пример prog.cpp:
float x,y; void main() { int k; // Tук може да се използват x и y; } float z; void f1() { int x; // Тук се използва вътрешната променлива x и // Външните променлив y и z; } void f2() { int y; // Тук се използва вътрешната променлива y и // Външните променлив x и z; }
Блок
Блок в C/C++ е последователност от дефиниции на променливи и оператори, заключен в {} . Блок може да се запише навсякъде в програмата, където е възможно да се запише оператор. Променливите, които се дефинират в блок са определени от мястото на дефиниринане до края на блока. Тези променливи са локални за блока. Там, където променливите са определени, е тяхната област на действие. Един блок може да съдържа в себе си друг блок. В този случай казваме, че блоковете са вградени един в друг. Променливите дефинирани в даден блок са глобални по отношение на блоковете, съдържащи се в дадения блок. Променливите във вложените блокове могат да имат еднакви имена. В този случай променливите в даден блок скриват глобалните променливи със същите имена.
Пример:
void main() { float x,y; { int k; // локална променлива k // глобални променливи x и y } float z; { int x; // локална променлива x // глобална променлива z и y; } { int y; // локална променлива y // глобална променлива z и x; } }