int a=27;
f()
{
int a=32;
g();
}
g()
{
print a;
{
int a=99;
h();
}
}
h()
{
print a;
}
void main()
{
print a;
f();
g();
h();
}
Я получил ответы 27, 27, 27, 27, 27, 27 для статического объема и 27, 32, 99, 27, 99, 27 для динамической области. Я прав?Как влияет область видимости на вложенные функции в C?
Вложенных функций нет; и каждая функция имеет свои собственные переменные - неважно, разделяют ли они имена. Переменные, которые имеют те же имена, что и внешние лексические области, а не контексты выполнения, C не имеет «динамической области видимости» - будут затенять их. – user2864740
На каком языке? 'print a' недействителен C. – owacoder
C/C++ не использует динамическое определение области. Ваш язык программирования будет использовать тот или иной, вы не можете выбрать – JerryGoyal