2 — но если вне локальной зоны видимости, есть переменная с таким же именем — то такая ошибка обычно называется не «логическая» а «не предсказуемое поведение»… более того — не известно — будет ли иметь место ошибка — поведение программы может быть и корректным. но по меньшей мере — это «плохой стиль»