Блоки
Именованные сущности, такие как переменные, функции и составные типы данных в C++ должны быть объявлены прежде, чем будут использованы. Место объявления в программе влияет на их видимость:
Сущность, объявленная вне какого-либо блока, имеет глобальную область видимости, что означает, что ее имя является допустимым в любом месте кода программы. Сущность, объявленная внутри блока, такого как функция или оператор выбора, имеет область видимости блока и видна только внутри блока, в котором она объявлена, но не вне его.
...