Объявление переменной внутри блока кода и в начале программы отличается областью видимости переменных. 15
Объявление внутри блока (локальное) делает переменную видимой только внутри этого блока и вложенных в него блоков. 15 Локальная переменная существует только во время выполнения блока, создаётся при входе в него и разрушается при выходе. 1 Переменная, объявленная в одном блоке, не имеет отношения к переменной с тем же именем, объявленной в другом блоке. 1
Объявление в начале программы (глобальное) позволяет использовать переменную в любом месте программы. 1 Глобальная переменная сохраняет своё значение на протяжении всей работы программы. 1 Она может быть использована в любом выражении, независимо от того, в каком блоке это выражение используется. 1
Таким образом, объявление внутри блока помогает избежать нежелательных побочных эффектов, так как переменная не существует вне блока, в котором она объявлена. 1 А объявление в начале программы позволяет использовать переменную в разных частях кода.